Only emit the personality function as a global value if the backend actually
authorBill Wendling <isanbard@gmail.com>
Sun, 16 Sep 2007 10:36:17 +0000 (10:36 +0000)
committerBill Wendling <isanbard@gmail.com>
Sun, 16 Sep 2007 10:36:17 +0000 (10:36 +0000)
supports it. This solves this error on the Darwin x86-64 platform:

$ cat testcase.ii
struct A {
  A();
};

A *bork() {
  return new A;
}
$ llvm-g++ -arch x86_64 -c testcase.ii
/var/tmp//cc3U8fd8.s:52:unknown section type: non_lazy_symbol_pointers
/var/tmp//cc3U8fd8.s:52:Rest of line ignored. 1st junk character valued 76 (L).
/var/tmp//cc3U8fd8.s:53:Unknown pseudo-op: .indirect_symbol
/var/tmp//cc3U8fd8.s:53:Rest of line ignored. 1st junk character valued 95 (_).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41999 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86AsmPrinter.cpp

index b7de8f002db3a1761098f652aa762951cb004d78..7049cf190ba1252a5830378d1d024b189ef27471 100644 (file)
@@ -352,7 +352,7 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
 
     O << "\n";
 
-    if (MMI) {
+    if (TAI->doesSupportExceptionHandling() && MMI) {
       // Add the (possibly multiple) personalities to the set of global values.
       const std::vector<Function *>& Personalities = MMI->getPersonalities();