Add type DIE into appropriate context DIE.

llvm-svn: 63154
This commit is contained in:
Devang Patel 2009-01-27 23:22:55 +00:00
parent 99c0cdf899
commit 5adc3dbc96
1 changed files with 17 additions and 3 deletions

View File

@ -1687,9 +1687,23 @@ private:
ConstructTypeDIE(DW_Unit, Buffer, DICompositeType(Ty.getGV()));
}
// Add debug information entry to entity and unit.
DIE *Die = DW_Unit->AddDie(Buffer);
SetDIEntry(Slot, Die);
// Add debug information entry to entity and appropriate context.
DIE *Die = NULL;
DIDescriptor Context = Ty.getContext();
if (!Context.isNull())
Die = DW_Unit->getDieMapSlotFor(Context.getGV());
if (Die) {
DIE *Child = new DIE(Buffer);
Die->AddChild(Child);
Buffer.Detach();
SetDIEntry(Slot, Child);
}
else {
Die = DW_Unit->AddDie(Buffer);
SetDIEntry(Slot, Die);
}
Entity->AddValue(DW_AT_type, DW_FORM_ref4, Slot);
}