From 74d8a87f40dd89ec263071c0af4d77104b166f4a Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Tue, 8 Nov 2011 21:56:23 +0000 Subject: [PATCH] Also add the linkage name to the name accelerator tables if it exists and is different than the normal name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144130 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 5 +++++ lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 660992a2945..3d353b3b954 100644 --- a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -1131,6 +1131,11 @@ void CompileUnit::createGlobalVariableDIE(const MDNode *N) { if (addToAccelTable) addAccelName(GV.getName(), VariableDIE); + // If the linkage name is different than the name, go ahead and output + // that as well into the name table. + if (GV.getLinkageName() != "" && GV.getName() != GV.getLinkageName()) + addAccelName(GV.getLinkageName(), VariableDIE); + return; } diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 286075fb025..085ad2cb589 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -441,8 +441,15 @@ DIE *DwarfDebug::constructScopeDIE(CompileUnit *TheCU, LexicalScope *Scope) { if (DS.isSubprogram()) TheCU->addPubTypes(DISubprogram(DS)); - if (DS.isSubprogram() && !Scope->isAbstractScope()) - TheCU->addAccelName(DISubprogram(DS).getName(), ScopeDIE); + if (DS.isSubprogram() && !Scope->isAbstractScope()) { + DISubprogram SP = DISubprogram(DS); + TheCU->addAccelName(SP.getName(), ScopeDIE); + + // If the linkage name is different than the name, go ahead and output + // that as well into the name table. + if (SP.getLinkageName() != "" && SP.getName() != SP.getLinkageName()) + TheCU->addAccelName(SP.getLinkageName(), ScopeDIE); + } return ScopeDIE; } @@ -596,6 +603,11 @@ void DwarfDebug::constructSubprogramDIE(CompileUnit *TheCU, // Add to Accel Names TheCU->addAccelName(SP.getName(), SubprogramDie); + // If the linkage name is different than the name, go ahead and output + // that as well into the name table. + if (SP.getLinkageName() != "" && SP.getName() != SP.getLinkageName()) + TheCU->addAccelName(SP.getLinkageName(), SubprogramDie); + // If this is an Objective-C selector name add it to the ObjC accelerator too. if (isObjCClass(SP.getName())) { StringRef Class, Category;