Derive DICompileUnit from DIScope.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80627 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2009-08-31 21:34:44 +00:00
parent dc8f6049d1
commit c9f322d9a6
2 changed files with 15 additions and 3 deletions

View File

@ -95,6 +95,7 @@ namespace llvm {
bool isSubprogram() const; bool isSubprogram() const;
bool isGlobalVariable() const; bool isGlobalVariable() const;
bool isScope() const; bool isScope() const;
bool isCompileUnit() const;
}; };
/// DISubrange - This is used to represent ranges, for array bounds. /// DISubrange - This is used to represent ranges, for array bounds.
@ -129,10 +130,13 @@ namespace llvm {
}; };
/// DICompileUnit - A wrapper for a compile unit. /// DICompileUnit - A wrapper for a compile unit.
class DICompileUnit : public DIDescriptor { class DICompileUnit : public DIScope {
public: public:
explicit DICompileUnit(MDNode *N = 0) explicit DICompileUnit(MDNode *N = 0) {
: DIDescriptor(N, dwarf::DW_TAG_compile_unit) {} DbgNode = N;
if (DbgNode && !isCompileUnit())
DbgNode = 0;
}
unsigned getLanguage() const { return getUnsignedField(2); } unsigned getLanguage() const { return getUnsignedField(2); }
const std::string &getFilename(std::string &F) const { const std::string &getFilename(std::string &F) const {

View File

@ -227,6 +227,14 @@ bool DIDescriptor::isScope() const {
return false; return false;
} }
/// isCompileUnit - Return true if the specified tag is DW_TAG_compile_unit.
bool DIDescriptor::isCompileUnit() const {
assert (!isNull() && "Invalid descriptor!");
unsigned Tag = getTag();
return Tag == dwarf::DW_TAG_compile_unit;
}
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Simple Descriptor Constructors and other Methods // Simple Descriptor Constructors and other Methods
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//