explicit DIE(unsigned Tag)
: Offset(0), Size(0), Abbrev((dwarf::Tag)Tag, dwarf::DW_CHILDREN_no),
Parent(0) {}
- virtual ~DIE();
+ ~DIE();
// Accessors.
DIEAbbrev &getAbbrev() { return Abbrev; }
const std::vector<DIE *> &getChildren() const { return Children; }
const SmallVectorImpl<DIEValue*> &getValues() const { return Values; }
DIE *getParent() const { return Parent; }
- /// Climb up the parent chain to get the compile unit DIE this DIE belongs
- /// to.
- const DIE *getCompileUnit() const;
- /// Similar to getCompileUnit, returns null when DIE is not added to an
+ /// Climb up the parent chain to get the compile or type unit DIE this DIE
+ /// belongs to.
+ const DIE *getUnit() const;
+ /// Similar to getUnit, returns null when DIE is not added to an
/// owner yet.
- const DIE *getCompileUnitOrNull() const;
+ const DIE *getUnitOrNull() const;
void setOffset(unsigned O) { Offset = O; }
void setSize(unsigned S) { Size = S; }
/// findAttribute - Find a value in the DIE with the attribute given,
/// returns NULL if no such attribute exists.
- DIEValue *findAttribute(uint16_t Attribute);
+ DIEValue *findAttribute(uint16_t Attribute) const;
#ifndef NDEBUG
void print(raw_ostream &O, unsigned IndentCount = 0) const;