mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +00:00
Introduce DIScope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80620 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5a68509b17
commit
43d98b3c4e
@ -94,6 +94,7 @@ namespace llvm {
|
||||
bool isVariable() const;
|
||||
bool isSubprogram() const;
|
||||
bool isGlobalVariable() const;
|
||||
bool isScope() const;
|
||||
};
|
||||
|
||||
/// DISubrange - This is used to represent ranges, for array bounds.
|
||||
@ -118,6 +119,15 @@ namespace llvm {
|
||||
}
|
||||
};
|
||||
|
||||
/// DIScope - A base class for various scopes.
|
||||
class DIScope : public DIDescriptor {
|
||||
public:
|
||||
explicit DIScope(MDNode *N = 0) : DIDescriptor (N) {
|
||||
if (DbgNode && !isScope())
|
||||
DbgNode = 0;
|
||||
}
|
||||
};
|
||||
|
||||
/// DICompileUnit - A wrapper for a compile unit.
|
||||
class DICompileUnit : public DIDescriptor {
|
||||
public:
|
||||
|
@ -210,6 +210,22 @@ bool DIDescriptor::isGlobalVariable() const {
|
||||
return Tag == dwarf::DW_TAG_variable;
|
||||
}
|
||||
|
||||
/// isScope - Return true if the specified tag is one of the scope
|
||||
/// related tag.
|
||||
bool DIDescriptor::isScope() const {
|
||||
assert (!isNull() && "Invalid descriptor!");
|
||||
unsigned Tag = getTag();
|
||||
|
||||
switch (Tag) {
|
||||
case dwarf::DW_TAG_compile_unit:
|
||||
case dwarf::DW_TAG_lexical_block:
|
||||
case dwarf::DW_TAG_subprogram:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Simple Descriptor Constructors and other Methods
|
||||
|
Loading…
Reference in New Issue
Block a user