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
This commit is contained in:
Eric Christopher 2011-11-08 21:56:23 +00:00
parent 9cae2d2225
commit 74d8a87f40
2 changed files with 19 additions and 2 deletions

View File

@ -1131,6 +1131,11 @@ void CompileUnit::createGlobalVariableDIE(const MDNode *N) {
if (addToAccelTable) if (addToAccelTable)
addAccelName(GV.getName(), VariableDIE); 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; return;
} }

View File

@ -441,8 +441,15 @@ DIE *DwarfDebug::constructScopeDIE(CompileUnit *TheCU, LexicalScope *Scope) {
if (DS.isSubprogram()) if (DS.isSubprogram())
TheCU->addPubTypes(DISubprogram(DS)); TheCU->addPubTypes(DISubprogram(DS));
if (DS.isSubprogram() && !Scope->isAbstractScope()) if (DS.isSubprogram() && !Scope->isAbstractScope()) {
TheCU->addAccelName(DISubprogram(DS).getName(), ScopeDIE); 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; return ScopeDIE;
} }
@ -596,6 +603,11 @@ void DwarfDebug::constructSubprogramDIE(CompileUnit *TheCU,
// Add to Accel Names // Add to Accel Names
TheCU->addAccelName(SP.getName(), SubprogramDie); 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 this is an Objective-C selector name add it to the ObjC accelerator too.
if (isObjCClass(SP.getName())) { if (isObjCClass(SP.getName())) {
StringRef Class, Category; StringRef Class, Category;