diff options
author | James Farrell <jamesfarrell@google.com> | 2021-11-16 22:52:24 +0000 |
---|---|---|
committer | James Farrell <jamesfarrell@google.com> | 2021-11-30 15:44:23 +0000 |
commit | 1e8286467036d8ef1a972de723f805a4981b2692 (patch) | |
tree | 0d150646bbfbef4e8ebd6e3c37a9e1efd4132ec7 /llvm/lib/MC/MCStreamer.cpp | |
parent | c9ad356266f3c91d90bcb149d178423cb3e04c42 (diff) | |
download | llvm-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.cpp | 16 |
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) |