Add Triple::getiOSVersion.

This new function provides a way to get the iOS version number from ios triples.
Part of rdar://11409204

llvm-svn: 156483
This commit is contained in:
Chad Rosier 2012-05-09 17:23:48 +00:00
parent d60f4c8fef
commit d84eaac673
2 changed files with 26 additions and 0 deletions

View File

@ -196,6 +196,11 @@ public:
bool getMacOSXVersion(unsigned &Major, unsigned &Minor,
unsigned &Micro) const;
/// getiOSVersion - Parse the version number as with getOSVersion. This should
/// only be called with IOS triples.
void getiOSVersion(unsigned &Major, unsigned &Minor,
unsigned &Micro) const;
/// @}
/// @name Direct Component Access
/// @{

View File

@ -596,6 +596,27 @@ bool Triple::getMacOSXVersion(unsigned &Major, unsigned &Minor,
return true;
}
void Triple::getiOSVersion(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 = 0;
Minor = 0;
Micro = 0;
return true;
case IOS:
getOSVersion(Major, Minor, Micro);
// Default to 0.0.
break;
}
}
void Triple::setTriple(const Twine &Str) {
*this = Triple(Str);
}