/// 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;
/// GlobalNames - A map of globally visible named entities for this unit.
///
- StringMap<DIE *> GlobalNames;
+ StringMap<const DIE *> GlobalNames;
/// GlobalTypes - A map of globally visible types for this unit.
///
- StringMap<DIE *> GlobalTypes;
+ StringMap<const DIE *> GlobalTypes;
/// AccelNames - A map of names for the name accelerator table.
///
uint16_t getLanguage() const { return Language; }
DICompileUnit getNode() const { return Node; }
DIE *getCUDie() const { return CUDie.get(); }
- const StringMap<DIE *> &getGlobalNames() const { return GlobalNames; }
- const StringMap<DIE *> &getGlobalTypes() const { return GlobalTypes; }
+ const StringMap<const DIE *> &getGlobalNames() const { return GlobalNames; }
+ const StringMap<const DIE *> &getGlobalTypes() const { return GlobalTypes; }
const StringMap<std::vector<const DIE *> > &getAccelNames() const {
return AccelNames;
/// computeIndexValue - Compute the gdb index value for the DIE and CU.
static dwarf::PubIndexEntryDescriptor computeIndexValue(CompileUnit *CU,
- DIE *Die) {
+ const DIE *Die) {
dwarf::GDBIndexEntryLinkage Linkage = dwarf::GIEL_STATIC;
// We could have a specification DIE that has our most of our knowledge,
4);
// Emit the pubnames for this compilation unit.
- const StringMap<DIE *> &Globals = TheCU->getGlobalNames();
- for (StringMap<DIE *>::const_iterator GI = Globals.begin(),
- GE = Globals.end();
+ const StringMap<const DIE *> &Globals = TheCU->getGlobalNames();
+ for (StringMap<const DIE *>::const_iterator GI = Globals.begin(),
+ GE = Globals.end();
GI != GE; ++GI) {
const char *Name = GI->getKeyData();
- DIE *Entity = GI->second;
+ const DIE *Entity = GI->second;
Asm->OutStreamer.AddComment("DIE offset");
Asm->EmitInt32(Entity->getOffset());
Asm->GetTempSymbol(ISec->getLabelBeginName(), TheCU->getUniqueID()), 4);
// Emit the pubtypes.
- const StringMap<DIE *> &Globals = TheCU->getGlobalTypes();
- for (StringMap<DIE *>::const_iterator GI = Globals.begin(),
- GE = Globals.end();
+ const StringMap<const DIE *> &Globals = TheCU->getGlobalTypes();
+ for (StringMap<const DIE *>::const_iterator GI = Globals.begin(),
+ GE = Globals.end();
GI != GE; ++GI) {
const char *Name = GI->getKeyData();
- DIE *Entity = GI->second;
+ const DIE *Entity = GI->second;
if (Asm->isVerbose())
Asm->OutStreamer.AddComment("DIE offset");