[CodeGen] Don't emit a random reference to the personality function
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 18 Jun 2015 18:31:46 +0000 (18:31 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 18 Jun 2015 18:31:46 +0000 (18:31 +0000)
This should fix issues we've been seeing with Darwin.

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

lib/CodeGen/AsmPrinter/AsmPrinter.cpp
test/CodeGen/X86/personality.ll

index bb6bc75b55e26a8f04a2348d55c7b172e514d524..95da5887658e7ba74d7ea36c412d9af5397e2793 100644 (file)
@@ -548,10 +548,6 @@ void AsmPrinter::EmitFunctionHeader() {
   if (F->hasPrefixData())
     EmitGlobalConstant(F->getPrefixData());
 
-  // Emit the personality function.
-  if (F->hasPersonalityFn())
-    EmitGlobalConstant(F->getPersonalityFn());
-
   // Emit the CurrentFnSym.  This is a virtual function to allow targets to
   // do their wild and crazy things as required.
   EmitFunctionEntryLabel();
index afb6b1810e63d6f59c71eddde5459ca811e3d887..53162ebc86880b40aa7c141a701522bffaf859c1 100644 (file)
@@ -41,8 +41,10 @@ declare void @__cxa_end_catch()
 
 declare i32 @__gxx_personality_v0(...)
 
+; X64-NOT: .quad ___gxx_personality_v0
 ; X64: .cfi_personality 155, ___gxx_personality_v0
 
+; X32-NOT: .long ___gxx_personality_v0
 ; X32: .cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr
 
 ; X32:        .section __IMPORT,__pointers,non_lazy_symbol_pointers