Index: lib/Support/Triple.cpp |
=================================================================== |
--- lib/Support/Triple.cpp (revision 138335) |
+++ lib/Support/Triple.cpp (working copy) |
@@ -10,6 +10,7 @@ |
#include "llvm/ADT/Triple.h" |
#include "llvm/ADT/SmallString.h" |
#include "llvm/ADT/STLExtras.h" |
+#include "llvm/Support/ErrorHandling.h" |
#include <cstring> |
using namespace llvm; |
@@ -328,58 +329,156 @@ |
Triple::OSType Triple::ParseOS(StringRef OSName) { |
if (OSName.startswith("auroraux")) |
+#if defined(LLVM_ENABLED_TARGET_OS_AURORAUX) |
return AuroraUX; |
+#else |
+ llvm_unreachable( |
+ "ParseOS auroraux w/out LLVM_ENABLED_TARGET_OS_AURORAUX"); |
+#endif |
else if (OSName.startswith("cygwin")) |
+#if defined(LLVM_ENABLED_TARGET_OS_CYGWIN) |
return Cygwin; |
+#else |
+ llvm_unreachable("ParseOS cygwin w/out LLVM_ENABLED_TARGET_OS_CYGWIN"); |
+#endif |
else if (OSName.startswith("darwin")) |
+#if defined(LLVM_ENABLED_TARGET_OS_DARWIN) |
return Darwin; |
+#else |
+ llvm_unreachable("ParseOS darwin w/out LLVM_ENABLED_TARGET_OS_DARWIN"); |
+#endif |
else if (OSName.startswith("dragonfly")) |
+#if defined(LLVM_ENABLED_TARGET_OS_DRAGONFLY) |
return DragonFly; |
+#else |
+ llvm_unreachable( |
+ "ParseOS dragonfly w/out LLVM_ENABLED_TARGET_OS_DRAGONFLY"); |
+#endif |
else if (OSName.startswith("freebsd")) |
+#if defined(LLVM_ENABLED_TARGET_OS_FREEBSD) |
return FreeBSD; |
+#else |
+ llvm_unreachable("ParseOS freebsd w/out LLVM_ENABLED_TARGET_OS_FREEBSD"); |
+#endif |
else if (OSName.startswith("ios")) |
+#if defined(LLVM_ENABLED_TARGET_OS_IOS) |
return IOS; |
+#else |
+ llvm_unreachable("ParseOS ios w/out LLVM_ENABLED_TARGET_OS_IOS"); |
+#endif |
else if (OSName.startswith("kfreebsd")) |
+#if defined(LLVM_ENABLED_TARGET_OS_KFREEBSD) |
return KFreeBSD; |
+#else |
+ llvm_unreachable("ParseOS kfreebsd w/out LLVM_ENABLED_TARGET_OS_KFREEBSD"); |
+#endif |
else if (OSName.startswith("linux")) |
+#if defined(LLVM_ENABLED_TARGET_OS_LINUX) |
return Linux; |
+#else |
+ llvm_unreachable("ParseOS linux w/out LLVM_ENABLED_TARGET_OS_LINUX"); |
+#endif |
else if (OSName.startswith("lv2")) |
+#if defined(LLVM_ENABLED_TARGET_OS_LV2) |
return Lv2; |
+#else |
+ llvm_unreachable("ParseOS lv2 w/out LLVM_ENABLED_TARGET_OS_LV2"); |
+#endif |
else if (OSName.startswith("macosx")) |
+#if defined(LLVM_ENABLED_TARGET_OS_MACOSX) |
return MacOSX; |
+#else |
+ llvm_unreachable("ParseOS macosx w/out LLVM_ENABLED_TARGET_OS_MACOSX"); |
+#endif |
else if (OSName.startswith("mingw32")) |
+#if defined(LLVM_ENABLED_TARGET_OS_MINGW32) |
return MinGW32; |
+#else |
+ llvm_unreachable("ParseOS mingw32 w/out LLVM_ENABLED_TARGET_OS_MINGW32"); |
+#endif |
else if (OSName.startswith("netbsd")) |
+#if defined(LLVM_ENABLED_TARGET_OS_NETBSD) |
return NetBSD; |
+#else |
+ llvm_unreachable("ParseOS netbsd w/out LLVM_ENABLED_TARGET_OS_NETBSD"); |
+#endif |
else if (OSName.startswith("openbsd")) |
+#if defined(LLVM_ENABLED_TARGET_OS_OPENBSD) |
return OpenBSD; |
+#else |
+ llvm_unreachable("ParseOS openbsd w/out LLVM_ENABLED_TARGET_OS_OPENBSD"); |
+#endif |
else if (OSName.startswith("psp")) |
+#if defined(LLVM_ENABLED_TARGET_OS_PSP) |
return Psp; |
+#else |
+ llvm_unreachable("ParseOS psp w/out LLVM_ENABLED_TARGET_OS_PSP"); |
+#endif |
else if (OSName.startswith("solaris")) |
+#if defined(LLVM_ENABLED_TARGET_OS_SOLARIS) |
return Solaris; |
+#else |
+ llvm_unreachable("ParseOS solaris w/out LLVM_ENABLED_TARGET_OS_SOLARIS"); |
+#endif |
else if (OSName.startswith("win32")) |
+#if defined(LLVM_ENABLED_TARGET_OS_WIN32) |
return Win32; |
+#else |
+ llvm_unreachable("ParseOS win32 w/out LLVM_ENABLED_TARGET_OS_WIN32"); |
+#endif |
else if (OSName.startswith("haiku")) |
+#if defined(LLVM_ENABLED_TARGET_OS_HAIKU) |
return Haiku; |
+#else |
+ llvm_unreachable("ParseOS haiku w/out LLVM_ENABLED_TARGET_OS_HAIKU"); |
+#endif |
else if (OSName.startswith("minix")) |
+#if defined(LLVM_ENABLED_TARGET_OS_MINIX) |
return Minix; |
+#else |
+ llvm_unreachable("ParseOS minix w/out LLVM_ENABLED_TARGET_OS_MINIX"); |
+#endif |
else if (OSName.startswith("rtems")) |
+#if defined(LLVM_ENABLED_TARGET_OS_RTEMS) |
return RTEMS; |
+#else |
+ llvm_unreachable("ParseOS rtems w/out LLVM_ENABLED_TARGET_OS_RTEMS"); |
+#endif |
else if (OSName.startswith("nacl")) |
+#if defined(LLVM_ENABLED_TARGET_OS_NATIVECLIENT) |
return NativeClient; |
+#else |
+ llvm_unreachable("ParseOS nacl w/out LLVM_ENABLED_TARGET_OS_NATIVECLIENT"); |
+#endif |
else |
return UnknownOS; |
} |
Triple::EnvironmentType Triple::ParseEnvironment(StringRef EnvironmentName) { |
if (EnvironmentName.startswith("eabi")) |
+#if defined(LLVM_ENABLED_TARGET_ENV_EABI) |
return EABI; |
+#else |
+ llvm_unreachable("ParseEnv eabi w/out LLVM_ENABLED_TARGET_ENV_EABI"); |
+#endif |
else if (EnvironmentName.startswith("gnueabi")) |
+#if defined(LLVM_ENABLED_TARGET_ENV_GNUEABI) |
return GNUEABI; |
+#else |
+ llvm_unreachable("ParseEnv gnueabi w/out LLVM_ENABLED_TARGET_ENV_GNUEABI"); |
+#endif |
else if (EnvironmentName.startswith("gnu")) |
+#if defined(LLVM_ENABLED_TARGET_ENV_GNU) |
return GNU; |
+#else |
+ llvm_unreachable("ParseEnv gnu w/out LLVM_ENABLED_TARGET_ENV_GNU"); |
+#endif |
else if (EnvironmentName.startswith("macho")) |
+#if defined(LLVM_ENABLED_TARGET_ENV_MACHO) |
return MachO; |
+#else |
+ llvm_unreachable("ParseEnv macho w/out LLVM_ENABLED_TARGET_ENV_MACHO"); |
+#endif |
else |
return UnknownEnvironment; |
} |