mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Skip special LLVM prefix '1' while emitting linknage name.
This prefix is used by LLVM to inform the asm printer to not emit usual global symbol prefix before the symbol name. llvm-svn: 75875
This commit is contained in:
parent
845a780701
commit
58a041b634
@ -785,10 +785,16 @@ DIE *DwarfDebug::CreateGlobalVariableDIE(CompileUnit *DW_Unit,
|
||||
AddString(GVDie, dwarf::DW_AT_name, dwarf::DW_FORM_string, Name);
|
||||
std::string LinkageName;
|
||||
GV.getLinkageName(LinkageName);
|
||||
if (!LinkageName.empty())
|
||||
if (!LinkageName.empty()) {
|
||||
// Skip special LLVM prefix that is used to inform the asm printer to not emit
|
||||
// usual symbol prefix before the symbol name. This happens for Objective-C
|
||||
// symbol names and symbol whose name is replaced using GCC's __asm__ attribute.
|
||||
if (LinkageName[0] == 1)
|
||||
LinkageName = &LinkageName[1];
|
||||
AddString(GVDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
|
||||
LinkageName);
|
||||
AddType(DW_Unit, GVDie, GV.getType());
|
||||
}
|
||||
AddType(DW_Unit, GVDie, GV.getType());
|
||||
if (!GV.isLocalToUnit())
|
||||
AddUInt(GVDie, dwarf::DW_AT_external, dwarf::DW_FORM_flag, 1);
|
||||
AddSourceLine(GVDie, &GV);
|
||||
@ -855,9 +861,15 @@ DIE *DwarfDebug::CreateSubprogramDIE(CompileUnit *DW_Unit,
|
||||
|
||||
std::string LinkageName;
|
||||
SP.getLinkageName(LinkageName);
|
||||
if (!LinkageName.empty())
|
||||
if (!LinkageName.empty()) {
|
||||
// Skip special LLVM prefix that is used to inform the asm printer to not emit
|
||||
// usual symbol prefix before the symbol name. This happens for Objective-C
|
||||
// symbol names and symbol whose name is replaced using GCC's __asm__ attribute.
|
||||
if (LinkageName[0] == 1)
|
||||
LinkageName = &LinkageName[1];
|
||||
AddString(SPDie, dwarf::DW_AT_MIPS_linkage_name, dwarf::DW_FORM_string,
|
||||
LinkageName);
|
||||
}
|
||||
AddSourceLine(SPDie, &SP);
|
||||
|
||||
DICompositeType SPTy = SP.getType();
|
||||
@ -2455,7 +2467,16 @@ void DwarfDebug::EmitDebugInlineInfo() {
|
||||
SP.getLinkageName(LName);
|
||||
SP.getName(Name);
|
||||
|
||||
Asm->EmitString(LName.empty() ? Name : LName);
|
||||
if (LName.empty())
|
||||
Asm->EmitString(Name);
|
||||
else {
|
||||
// Skip special LLVM prefix that is used to inform the asm printer to not emit
|
||||
// usual symbol prefix before the symbol name. This happens for Objective-C
|
||||
// symbol names and symbol whose name is replaced using GCC's __asm__ attribute.
|
||||
if (LName[0] == 1)
|
||||
LName = &LName[1];
|
||||
Asm->EmitString(LName);
|
||||
}
|
||||
Asm->EOL("MIPS linkage name");
|
||||
|
||||
Asm->EmitString(Name); Asm->EOL("Function name");
|
||||
|
Loading…
Reference in New Issue
Block a user