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.

llvm-svn: 82354
This commit is contained in:
Bill Wendling 2009-09-20 02:19:49 +00:00
parent 595b3dfcbe
commit 0f899601f3
2 changed files with 2 additions and 7 deletions

View 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);

View 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 |