| 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;
|
| }
|
|
|