forked from OSchip/llvm-project
There is no need to maintain a set to keep track of variables that use location expressions. In such cases, AT_location attribute's value will be a label.
llvm-svn: 137659
This commit is contained in:
parent
900d97719b
commit
d899444347
|
@ -412,7 +412,6 @@ DIE *DwarfDebug::constructVariableDIE(DbgVariable *DV, LexicalScope *Scope) {
|
|||
dwarf::DW_FORM_data4,
|
||||
Asm->GetTempSymbol("debug_loc", Offset));
|
||||
DV->setDIE(VariableDie);
|
||||
UseDotDebugLocEntry.insert(VariableDie);
|
||||
return VariableDie;
|
||||
}
|
||||
|
||||
|
@ -1676,10 +1675,9 @@ void DwarfDebug::emitDIE(DIE *Die) {
|
|||
break;
|
||||
}
|
||||
case dwarf::DW_AT_location: {
|
||||
if (UseDotDebugLocEntry.count(Die) != 0) {
|
||||
DIELabel *L = cast<DIELabel>(Values[i]);
|
||||
if (DIELabel *L = dyn_cast<DIELabel>(Values[i]))
|
||||
Asm->EmitLabelDifference(L->getValue(), DwarfDebugLocSectionSym, 4);
|
||||
} else
|
||||
else
|
||||
Values[i]->EmitValue(Asm, Form);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -234,10 +234,6 @@ class DwarfDebug {
|
|||
/// DotDebugLocEntries - Collection of DotDebugLocEntry.
|
||||
SmallVector<DotDebugLocEntry, 4> DotDebugLocEntries;
|
||||
|
||||
/// UseDotDebugLocEntry - DW_AT_location attributes for the DIEs in this set
|
||||
/// idetifies corresponding .debug_loc entry offset.
|
||||
SmallPtrSet<const DIE *, 4> UseDotDebugLocEntry;
|
||||
|
||||
/// InliendSubprogramDIEs - Collection of subprgram DIEs that are marked
|
||||
/// (at the end of the module) as DW_AT_inline.
|
||||
SmallPtrSet<DIE *, 4> InlinedSubprogramDIEs;
|
||||
|
|
Loading…
Reference in New Issue