diff --git a/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp b/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp index fd8c7d1715e..c746385b9a0 100644 --- a/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp +++ b/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp @@ -242,9 +242,7 @@ void MSP430AsmPrinter::printCCOperand(const MachineInstr *MI, int OpNum) { } } -extern "C" void LLVMInitializeMSP430Target() { - // Register the target. - RegisterTargetMachine X(TheMSP430Target); - RegisterAsmPrinter Y(TheMSP430Target); - RegisterAsmInfo Z(TheMSP430Target); +// Force static initialization. +extern "C" void LLVMInitializeMSP430AsmPrinter() { + RegisterAsmPrinter X(TheMSP430Target); } diff --git a/lib/Target/MSP430/MSP430TargetMachine.cpp b/lib/Target/MSP430/MSP430TargetMachine.cpp index 56495e6b21b..08190aa7cc8 100644 --- a/lib/Target/MSP430/MSP430TargetMachine.cpp +++ b/lib/Target/MSP430/MSP430TargetMachine.cpp @@ -17,8 +17,15 @@ #include "llvm/PassManager.h" #include "llvm/CodeGen/Passes.h" #include "llvm/Target/TargetAsmInfo.h" +#include "llvm/Target/TargetRegistry.h" using namespace llvm; +extern "C" void LLVMInitializeMSP430Target() { + // Register the target. + RegisterTargetMachine X(TheMSP430Target); + RegisterAsmInfo Z(TheMSP430Target); +} + MSP430TargetMachine::MSP430TargetMachine(const Target &T, const std::string &TT, const std::string &FS) :