Here's fun! It turns out that these filter functions can be internal. If they're
authorBill Wendling <isanbard@gmail.com>
Sun, 20 Sep 2009 02:19:49 +0000 (02:19 +0000)
committerBill Wendling <isanbard@gmail.com>
Sun, 20 Sep 2009 02:19:49 +0000 (02:19 +0000)
internal, they shouldn't use the indirect pointer stuff. In the case of
throw_rethrow_test, it was marked as 'internal' and calculated its own offset to
its contents.

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

lib/CodeGen/AsmPrinter/DwarfException.cpp
lib/Target/TargetLoweringObjectFile.cpp

index d6000e66f0648d250294a85114e9ac3edd89beb8..ebe54102d6e97a30162df46e532ac28122c50208 100644 (file)
@@ -906,7 +906,8 @@ void DwarfException::EmitExceptionTable() {
     const GlobalVariable *TI = *I;
 
     if (TI) {
-      if (TTypeFormat == dwarf::DW_EH_PE_absptr) {
+      if (TTypeFormat == dwarf::DW_EH_PE_absptr ||
+          TI->getLinkage() == GlobalValue::InternalLinkage) {
         // Print out the unadorned name of the type info.
         PrintRelDirective();
         O << Asm->Mang->getMangledName(TI);
index 4ee6b92b91fa1ec61d68a0f9d56e5bb1fcb82202..b49164aa177705bee68c727d0ff228c006a484fc 100644 (file)
@@ -782,14 +782,8 @@ void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx,
   }
 
   // Exception Handling.
-#if 1
-  LSDASection = getMachOSection("__DATA", "__gcc_except_tab", 0,
-                                SectionKind::getDataRel());
-#else
-  // FIXME: This is causing failures in the CINT2006 SPEC benchmarks.
   LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
                                 SectionKind::getReadOnly());
-#endif
   EHFrameSection =
     getMachOSection("__TEXT", "__eh_frame",
                     MCSectionMachO::S_COALESCED |