forked from OSchip/llvm-project
ARM: add watchOS default version support function.
It's useful for Clang's Driver faff. llvm-svn: 251574
This commit is contained in:
parent
f8e47e4868
commit
5e6fce6492
|
@ -303,10 +303,15 @@ public:
|
||||||
unsigned &Micro) const;
|
unsigned &Micro) const;
|
||||||
|
|
||||||
/// getiOSVersion - Parse the version number as with getOSVersion. This should
|
/// 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,
|
void getiOSVersion(unsigned &Major, unsigned &Minor,
|
||||||
unsigned &Micro) const;
|
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
|
/// @name Direct Component Access
|
||||||
/// @{
|
/// @{
|
||||||
|
|
|
@ -958,7 +958,6 @@ void Triple::getiOSVersion(unsigned &Major, unsigned &Minor,
|
||||||
default: llvm_unreachable("unexpected OS for Darwin triple");
|
default: llvm_unreachable("unexpected OS for Darwin triple");
|
||||||
case Darwin:
|
case Darwin:
|
||||||
case MacOSX:
|
case MacOSX:
|
||||||
case WatchOS:
|
|
||||||
// Ignore the version from the triple. This is only handled because the
|
// 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
|
// 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
|
// toolchain that wants to know the iOS version number even when targeting
|
||||||
|
@ -974,6 +973,32 @@ void Triple::getiOSVersion(unsigned &Major, unsigned &Minor,
|
||||||
if (Major == 0)
|
if (Major == 0)
|
||||||
Major = (getArch() == aarch64) ? 7 : 5;
|
Major = (getArch() == aarch64) ? 7 : 5;
|
||||||
break;
|
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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue