diff options
Diffstat (limited to 'lib/Target/TargetLoweringObjectFile.cpp')
-rw-r--r-- | lib/Target/TargetLoweringObjectFile.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp index 82619c7..8c12039 100644 --- a/lib/Target/TargetLoweringObjectFile.cpp +++ b/lib/Target/TargetLoweringObjectFile.cpp @@ -56,6 +56,10 @@ TargetLoweringObjectFile::TargetLoweringObjectFile() : Ctx(0) { DwarfARangesSection = 0; DwarfRangesSection = 0; DwarfMacroInfoSection = 0; + + IsFunctionEHSymbolGlobal = false; + IsFunctionEHFrameSymbolPrivate = true; + SupportsWeakOmittedEHFrame = true; } TargetLoweringObjectFile::~TargetLoweringObjectFile() { @@ -295,7 +299,12 @@ getSymbolForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang, // FIXME: Use GetGlobalValueSymbol. SmallString<128> Name; Mang->getNameWithPrefix(Name, GV, false); - const MCSymbol *Sym = getContext().GetOrCreateSymbol(Name.str()); + const MCSymbol *Sym; + + if (GV->hasPrivateLinkage()) + Sym = getContext().GetOrCreateTemporarySymbol(Name.str()); + else + Sym = getContext().GetOrCreateSymbol(Name.str()); return getSymbolForDwarfReference(Sym, MMI, Encoding); } |