aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCStreamer.cpp
diff options
context:
space:
mode:
authorJames Farrell <jamesfarrell@google.com>2021-11-16 22:52:24 +0000
committerJames Farrell <jamesfarrell@google.com>2021-11-30 15:44:23 +0000
commit1e8286467036d8ef1a972de723f805a4981b2692 (patch)
tree0d150646bbfbef4e8ebd6e3c37a9e1efd4132ec7 /llvm/lib/MC/MCStreamer.cpp
parentc9ad356266f3c91d90bcb149d178423cb3e04c42 (diff)
downloadllvm-1e8286467036d8ef1a972de723f805a4981b2692.zip
llvm-1e8286467036d8ef1a972de723f805a4981b2692.tar.gz
llvm-1e8286467036d8ef1a972de723f805a4981b2692.tar.bz2
Use VersionTuple for parsing versions in Triple. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible.
See also https://github.com/android/ndk/issues/1455. Differential Revision: https://reviews.llvm.org/D114163
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCStreamer.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index f4e64b4..65d519b 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -1316,27 +1316,25 @@ 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)