diff options
author | James Farrell <jamesfarrell@google.com> | 2021-12-06 17:41:26 +0000 |
---|---|---|
committer | James Farrell <jamesfarrell@google.com> | 2021-12-07 23:15:21 +0000 |
commit | 219672b8dd06c4765185fa3161c98437d49b4a1b (patch) | |
tree | d1aae7ecb2ffe9048671157cb0f14912ff6e2746 /llvm/lib/MC/MCStreamer.cpp | |
parent | 3e363f14e1289085690b2554fc7bc270b82d48ca (diff) | |
download | llvm-219672b8dd06c4765185fa3161c98437d49b4a1b.zip llvm-219672b8dd06c4765185fa3161c98437d49b4a1b.tar.gz llvm-219672b8dd06c4765185fa3161c98437d49b4a1b.tar.bz2 |
Revert "Revert "Use VersionTuple for parsing versions in Triple, fixing issues that caused the original change to be reverted. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible.""
This reverts commit 63a6348cad6caccf285c1661bc60d8ba5a40c972.
Differential Revision: https://reviews.llvm.org/D115254
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/MCStreamer.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index f4e64b4..b0da490 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -1316,37 +1316,36 @@ void MCStreamer::emitVersionForTarget(const Triple &Target, if (Target.getOSMajorVersion() == 0) return; - unsigned Major = 0; - unsigned Minor = 0; - unsigned Update = 0; + VersionTuple Version; switch (Target.getOS()) { case Triple::MacOSX: case Triple::Darwin: - Target.getMacOSXVersion(Major, Minor, Update); + Target.getMacOSXVersion(Version); break; case Triple::IOS: case Triple::TvOS: - Target.getiOSVersion(Major, Minor, Update); + Version = Target.getiOSVersion(); break; case Triple::WatchOS: - Target.getWatchOSVersion(Major, Minor, Update); + Version = Target.getWatchOSVersion(); break; default: llvm_unreachable("unexpected OS type"); } - assert(Major != 0 && "A non-zero major version is expected"); - auto LinkedTargetVersion = targetVersionOrMinimumSupportedOSVersion( - Target, VersionTuple(Major, Minor, Update)); + assert(Version.getMajor() != 0 && "A non-zero major version is expected"); + auto LinkedTargetVersion = + targetVersionOrMinimumSupportedOSVersion(Target, Version); auto BuildVersionOSVersion = getMachoBuildVersionSupportedOS(Target); if (BuildVersionOSVersion.empty() || LinkedTargetVersion >= BuildVersionOSVersion) return emitBuildVersion(getMachoBuildVersionPlatformType(Target), LinkedTargetVersion.getMajor(), - *LinkedTargetVersion.getMinor(), - *LinkedTargetVersion.getSubminor(), SDKVersion); + LinkedTargetVersion.getMinor().getValueOr(0), + LinkedTargetVersion.getSubminor().getValueOr(0), + SDKVersion); emitVersionMin(getMachoVersionMinLoadCommandType(Target), LinkedTargetVersion.getMajor(), - *LinkedTargetVersion.getMinor(), - *LinkedTargetVersion.getSubminor(), SDKVersion); + LinkedTargetVersion.getMinor().getValueOr(0), + LinkedTargetVersion.getSubminor().getValueOr(0), SDKVersion); } |