[llvm] r251574 - ARM: add watchOS default version support function.
Tim Northover via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 28 15:57:14 PDT 2015
Author: tnorthover
Date: Wed Oct 28 17:57:14 2015
New Revision: 251574
URL: http://llvm.org/viewvc/llvm-project?rev=251574&view=rev
Log:
ARM: add watchOS default version support function.
It's useful for Clang's Driver faff.
Modified:
llvm/trunk/include/llvm/ADT/Triple.h
llvm/trunk/lib/Support/Triple.cpp
Modified: llvm/trunk/include/llvm/ADT/Triple.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/Triple.h?rev=251574&r1=251573&r2=251574&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/Triple.h (original)
+++ llvm/trunk/include/llvm/ADT/Triple.h Wed Oct 28 17:57:14 2015
@@ -303,10 +303,15 @@ public:
unsigned &Micro) const;
/// getiOSVersion - Parse the version number as with getOSVersion. This should
- /// only be called with IOS triples.
+ /// only be called with IOS or generic triples.
void getiOSVersion(unsigned &Major, unsigned &Minor,
unsigned &Micro) const;
+ /// getWatchOSVersion - Parse the version number as with getOSVersion. This
+ /// should only be called with WatchOS or generic triples.
+ void getWatchOSVersion(unsigned &Major, unsigned &Minor,
+ unsigned &Micro) const;
+
/// @}
/// @name Direct Component Access
/// @{
Modified: llvm/trunk/lib/Support/Triple.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Triple.cpp?rev=251574&r1=251573&r2=251574&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Triple.cpp (original)
+++ llvm/trunk/lib/Support/Triple.cpp Wed Oct 28 17:57:14 2015
@@ -958,7 +958,6 @@ void Triple::getiOSVersion(unsigned &Maj
default: llvm_unreachable("unexpected OS for Darwin triple");
case Darwin:
case MacOSX:
- case WatchOS:
// Ignore the version from the triple. This is only handled because the
// the clang driver combines OS X and IOS support into a common Darwin
// toolchain that wants to know the iOS version number even when targeting
@@ -974,6 +973,32 @@ void Triple::getiOSVersion(unsigned &Maj
if (Major == 0)
Major = (getArch() == aarch64) ? 7 : 5;
break;
+ case WatchOS:
+ llvm_unreachable("conflicting triple info");
+ }
+}
+
+void Triple::getWatchOSVersion(unsigned &Major, unsigned &Minor,
+ unsigned &Micro) const {
+ switch (getOS()) {
+ default: llvm_unreachable("unexpected OS for Darwin triple");
+ case Darwin:
+ case MacOSX:
+ // Ignore the version from the triple. This is only handled because the
+ // the clang driver combines OS X and IOS support into a common Darwin
+ // toolchain that wants to know the iOS version number even when targeting
+ // OS X.
+ Major = 2;
+ Minor = 0;
+ Micro = 0;
+ break;
+ case WatchOS:
+ getOSVersion(Major, Minor, Micro);
+ if (Major == 0)
+ Major = 2;
+ break;
+ case IOS:
+ llvm_unreachable("conflicting triple info");
}
}
More information about the llvm-commits
mailing list