summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2011-11-08 21:56:23 +0000
committerEric Christopher <echristo@apple.com>2011-11-08 21:56:23 +0000
commit74d8a87f40dd89ec263071c0af4d77104b166f4a (patch)
treec115455cfb4ab78536c4218e44d6745d1309f1a9 /lib
parent9cae2d2225ba58a70ef8ff057feab6873f4af520 (diff)
downloadllvm-74d8a87f40dd89ec263071c0af4d77104b166f4a.tar.gz
llvm-74d8a87f40dd89ec263071c0af4d77104b166f4a.tar.bz2
llvm-74d8a87f40dd89ec263071c0af4d77104b166f4a.tar.xz
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
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp5
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfDebug.cpp16
2 files changed, 19 insertions, 2 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
index 660992a294..3d353b3b95 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 286075fb02..085ad2cb58 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;