Also add the linkage name to the name accelerator tables if it exists
authorEric Christopher <echristo@apple.com>
Tue, 8 Nov 2011 21:56:23 +0000 (21:56 +0000)
committerEric Christopher <echristo@apple.com>
Tue, 8 Nov 2011 21:56:23 +0000 (21:56 +0000)
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
lib/CodeGen/AsmPrinter/DwarfDebug.cpp

index 660992a2945793dd5a50076f7da33ad677abe45e..3d353b3b954835866c46034609e469ccb62da295 100644 (file)
@@ -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;
 }
 
index 286075fb025e4a4a50a953065fb288f0c6692fd4..085ad2cb5893de3175aabc6325b4c45f94a657c9 100644 (file)
@@ -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;