diff options
-rw-r--r-- | include/llvm/Target/TargetMachine.h | 3 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfException.cpp | 2 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetMachine.cpp | 4 |
3 files changed, 6 insertions, 3 deletions
diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h index 74dd11f..15f4e6c 100644 --- a/include/llvm/Target/TargetMachine.h +++ b/include/llvm/Target/TargetMachine.h @@ -202,6 +202,9 @@ public: /// getLSDAEncoding - Returns the LSDA pointer encoding. The choices are /// 4-byte, 8-byte, and target default. + /// FIXME: This call-back isn't good! We should be using the correct encoding + /// regardless of the system. However, there are some systems which have bugs + /// that prevent this from occuring. virtual DwarfLSDAEncoding::Encoding getLSDAEncoding() const { return DwarfLSDAEncoding::Default; } diff --git a/lib/CodeGen/AsmPrinter/DwarfException.cpp b/lib/CodeGen/AsmPrinter/DwarfException.cpp index 8de9bd6..01c3264 100644 --- a/lib/CodeGen/AsmPrinter/DwarfException.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfException.cpp @@ -283,7 +283,7 @@ void DwarfException::EmitFDE(const FunctionEHFrameInfo &EHFrameInfo) { if (MMI->getPersonalities()[0] != NULL) { bool is4Byte = TD->getPointerSize() == sizeof(int32_t); - if (Asm->TM.getLSDAEncoding() == DwarfLSDAEncoding::FourByte) { + if (Asm->TM.getLSDAEncoding() != DwarfLSDAEncoding::EightByte) { Asm->EmitULEB128Bytes(4); Asm->EOL("Augmentation size"); diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp index ea21676..b778fc2 100644 --- a/lib/Target/X86/X86TargetMachine.cpp +++ b/lib/Target/X86/X86TargetMachine.cpp @@ -251,8 +251,8 @@ void X86TargetMachine::setCodeModelForJIT() { } DwarfLSDAEncoding::Encoding X86TargetMachine::getLSDAEncoding() const { - if (Subtarget.isTargetDarwin() && Subtarget.getDarwinVers() > 10) + if (Subtarget.isTargetDarwin() && Subtarget.getDarwinVers() != 10) return DwarfLSDAEncoding::FourByte; - return DwarfLSDAEncoding::Default; + return DwarfLSDAEncoding::EightByte; } |