Fix LLVM target initialization to deal with sociopathic outside projects
[oota-llvm.git] / include / llvm / Target / TargetSelect.h
index ab6b62b74e6d9973f576ba6004ca8c2c19028c2f..1891f879741a147e9c57def3f68d6fb29daad8c8 100644 (file)
@@ -100,15 +100,10 @@ namespace llvm {
   /// It is legal for a client to make multiple calls to this function.
   inline bool InitializeNativeTarget() {
   // If we have a native target, initialize it to ensure it is linked in.
-#ifdef LLVM_NATIVE_ARCHNAME
-#define DoInit2(TARG) \
-    LLVMInitialize ## TARG ## Info ();          \
-    LLVMInitialize ## TARG ()
-#define DoInit(T) DoInit2(T)
-    DoInit(LLVM_NATIVE_ARCH);
+#ifdef LLVM_NATIVE_TARGET
+    LLVM_NATIVE_TARGETINFO();
+    LLVM_NATIVE_TARGET();
     return false;
-#undef DoInit
-#undef DoInit2
 #else
     return true;
 #endif
@@ -118,14 +113,9 @@ namespace llvm {
   /// this function to initialize the native target asm printer.
   inline bool InitializeNativeTargetAsmPrinter() {
   // If we have a native target, initialize the corresponding asm printer.
-#ifdef LLVM_NATIVE_ARCH
-#define DoInit2(TARG) \
-    LLVMInitialize ## TARG ## AsmPrinter ();
-#define DoInit(T) DoInit2(T)
-    DoInit(LLVM_NATIVE_ARCHNAME);
+#ifdef LLVM_NATIVE_ASMPRINTER
+    LLVM_NATIVE_ASMPRINTER();
     return false;
-#undef DoInit
-#undef DoInit2
 #else
     return true;
 #endif