Reapply r198196 with a fix to zero initialize the skeleton pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198199 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher
2013-12-30 03:40:32 +00:00
parent 94d1e67cb5
commit bba2331876
5 changed files with 59 additions and 33 deletions

View File

@@ -146,12 +146,21 @@ protected:
/// The label for the start of the range sets for the elements of this unit.
MCSymbol *LabelRange;
/// Skeleton unit associated with this unit.
DwarfUnit *Skeleton;
DwarfUnit(unsigned UID, DIE *D, DICompileUnit CU, AsmPrinter *A,
DwarfDebug *DW, DwarfFile *DWU);
public:
virtual ~DwarfUnit();
/// Set the skeleton unit associated with this unit.
void setSkeleton(DwarfUnit *Skel) { Skeleton = Skel; }
/// Get the skeleton unit associated with this unit.
DwarfUnit *getSkeleton() const { return Skeleton; }
/// Pass in the SectionSym even though we could recreate it in every compile
/// unit (type units will have actually distinct symbols once they're in
/// comdat sections).
@@ -521,6 +530,11 @@ public:
/// either DW_FORM_addr or DW_FORM_GNU_addr_index.
void addLabelAddress(DIE *Die, dwarf::Attribute Attribute, MCSymbol *Label);
/// addLocalLabelAddress - Add a dwarf label attribute data and value using
/// DW_FORM_addr.
void addLocalLabelAddress(DIE *Die, dwarf::Attribute Attribute,
MCSymbol *Label);
uint16_t getLanguage() const LLVM_OVERRIDE { return getNode().getLanguage(); }
};