Remove DIGlobal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103325 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel 2010-05-07 23:19:07 +00:00
parent 09e7a1722a
commit a49d877290
4 changed files with 41 additions and 71 deletions

View File

@ -335,41 +335,6 @@ namespace llvm {
void dump() const; void dump() const;
}; };
/// DIGlobal - This is a common class for global variables and subprograms.
class DIGlobal : public DIDescriptor {
protected:
explicit DIGlobal(const MDNode *N) : DIDescriptor(N) {}
public:
virtual ~DIGlobal() {}
DIScope getContext() const { return getFieldAs<DIScope>(2); }
StringRef getName() const { return getStringField(3); }
StringRef getDisplayName() const { return getStringField(4); }
StringRef getLinkageName() const { return getStringField(5); }
DICompileUnit getCompileUnit() const{
if (getVersion() == llvm::LLVMDebugVersion7)
return getFieldAs<DICompileUnit>(6);
DIFile F = getFieldAs<DIFile>(6);
return F.getCompileUnit();
}
unsigned getLineNumber() const { return getUnsignedField(7); }
DIType getType() const { return getFieldAs<DIType>(8); }
/// isLocalToUnit - Return true if this subprogram is local to the current
/// compile unit, like 'static' in C.
unsigned isLocalToUnit() const { return getUnsignedField(9); }
unsigned isDefinition() const { return getUnsignedField(10); }
/// print - print global.
void print(raw_ostream &OS) const;
/// dump - print global to dbgs() with a newline.
void dump() const;
};
/// DISubprogram - This is a wrapper for a subprogram (e.g. a function). /// DISubprogram - This is a wrapper for a subprogram (e.g. a function).
class DISubprogram : public DIScope { class DISubprogram : public DIScope {
public: public:
@ -447,9 +412,26 @@ namespace llvm {
}; };
/// DIGlobalVariable - This is a wrapper for a global variable. /// DIGlobalVariable - This is a wrapper for a global variable.
class DIGlobalVariable : public DIGlobal { class DIGlobalVariable : public DIDescriptor {
public: public:
explicit DIGlobalVariable(const MDNode *N = 0) : DIGlobal(N) {} explicit DIGlobalVariable(const MDNode *N = 0) : DIDescriptor(N) {}
DIScope getContext() const { return getFieldAs<DIScope>(2); }
StringRef getName() const { return getStringField(3); }
StringRef getDisplayName() const { return getStringField(4); }
StringRef getLinkageName() const { return getStringField(5); }
DICompileUnit getCompileUnit() const{
if (getVersion() == llvm::LLVMDebugVersion7)
return getFieldAs<DICompileUnit>(6);
DIFile F = getFieldAs<DIFile>(6);
return F.getCompileUnit();
}
unsigned getLineNumber() const { return getUnsignedField(7); }
DIType getType() const { return getFieldAs<DIType>(8); }
unsigned isLocalToUnit() const { return getUnsignedField(9); }
unsigned isDefinition() const { return getUnsignedField(10); }
GlobalVariable *getGlobal() const { return getGlobalVariableField(11); } GlobalVariable *getGlobal() const { return getGlobalVariableField(11); }

View File

@ -527,31 +527,6 @@ void DICompositeType::print(raw_ostream &OS) const {
OS << " [" << A.getNumElements() << " elements]"; OS << " [" << A.getNumElements() << " elements]";
} }
/// print - Print global.
void DIGlobal::print(raw_ostream &OS) const {
StringRef Res = getName();
if (!Res.empty())
OS << " [" << Res << "] ";
unsigned Tag = getTag();
OS << " [" << dwarf::TagString(Tag) << "] ";
// TODO : Print context
getCompileUnit().print(OS);
OS << " [" << getLineNumber() << "] ";
if (isLocalToUnit())
OS << " [local] ";
if (isDefinition())
OS << " [def] ";
if (isGlobalVariable())
DIGlobalVariable(DbgNode).print(OS);
OS << "\n";
}
/// print - Print subprogram. /// print - Print subprogram.
void DISubprogram::print(raw_ostream &OS) const { void DISubprogram::print(raw_ostream &OS) const {
StringRef Res = getName(); StringRef Res = getName();
@ -577,8 +552,26 @@ void DISubprogram::print(raw_ostream &OS) const {
/// print - Print global variable. /// print - Print global variable.
void DIGlobalVariable::print(raw_ostream &OS) const { void DIGlobalVariable::print(raw_ostream &OS) const {
OS << " ["; OS << " [";
getGlobal()->print(OS); StringRef Res = getName();
OS << "] "; if (!Res.empty())
OS << " [" << Res << "] ";
unsigned Tag = getTag();
OS << " [" << dwarf::TagString(Tag) << "] ";
// TODO : Print context
getCompileUnit().print(OS);
OS << " [" << getLineNumber() << "] ";
if (isLocalToUnit())
OS << " [local] ";
if (isDefinition())
OS << " [def] ";
if (isGlobalVariable())
DIGlobalVariable(DbgNode).print(OS);
OS << "]\n";
} }
/// print - Print variable. /// print - Print variable.
@ -625,11 +618,6 @@ void DICompositeType::dump() const {
print(dbgs()); dbgs() << '\n'; print(dbgs()); dbgs() << '\n';
} }
/// dump - Print global to dbgs() with a newline.
void DIGlobal::dump() const {
print(dbgs()); dbgs() << '\n';
}
/// dump - Print subprogram to dbgs() with a newline. /// dump - Print subprogram to dbgs() with a newline.
void DISubprogram::dump() const { void DISubprogram::dump() const {
print(dbgs()); dbgs() << '\n'; print(dbgs()); dbgs() << '\n';

View File

@ -462,7 +462,7 @@ void DwarfDebug::addSourceLine(DIE *Die, const DIVariable *V) {
/// addSourceLine - Add location information to specified debug information /// addSourceLine - Add location information to specified debug information
/// entry. /// entry.
void DwarfDebug::addSourceLine(DIE *Die, const DIGlobal *G) { void DwarfDebug::addSourceLine(DIE *Die, const DIGlobalVariable *G) {
// If there is no compile unit specified, don't add a line #. // If there is no compile unit specified, don't add a line #.
if (!G->getCompileUnit().Verify()) if (!G->getCompileUnit().Verify())
return; return;

View File

@ -295,7 +295,7 @@ private:
/// addSourceLine - Add location information to specified debug information /// addSourceLine - Add location information to specified debug information
/// entry. /// entry.
void addSourceLine(DIE *Die, const DIVariable *V); void addSourceLine(DIE *Die, const DIVariable *V);
void addSourceLine(DIE *Die, const DIGlobal *G); void addSourceLine(DIE *Die, const DIGlobalVariable *G);
void addSourceLine(DIE *Die, const DISubprogram *SP); void addSourceLine(DIE *Die, const DISubprogram *SP);
void addSourceLine(DIE *Die, const DIType *Ty); void addSourceLine(DIE *Die, const DIType *Ty);
void addSourceLine(DIE *Die, const DINameSpace *NS); void addSourceLine(DIE *Die, const DINameSpace *NS);