Here's fun! It turns out that these filter functions can be internal. If they're
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
diff --git a/lib/CodeGen/AsmPrinter/DwarfException.cpp b/lib/CodeGen/AsmPrinter/DwarfException.cpp
index d6000e6..ebe5410 100644
--- a/lib/CodeGen/AsmPrinter/DwarfException.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfException.cpp
@@ -906,7 +906,8 @@
     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);
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp
index 4ee6b92..b49164a 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -782,14 +782,8 @@
   }
 
   // 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 |