aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCStreamer.cpp
diff options
context:
space:
mode:
authorJames Farrell <jamesfarrell@google.com>2021-12-06 17:41:26 +0000
committerJames Farrell <jamesfarrell@google.com>2021-12-07 23:15:21 +0000
commit219672b8dd06c4765185fa3161c98437d49b4a1b (patch)
treed1aae7ecb2ffe9048671157cb0f14912ff6e2746 /llvm/lib/MC/MCStreamer.cpp
parent3e363f14e1289085690b2554fc7bc270b82d48ca (diff)
downloadllvm-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.cpp25
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);
}