mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-12 17:25:49 +00:00
Add a comment about the DIDescriptor class hierarchy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205358 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -197,6 +197,13 @@ typedef DIRef<DIScope> DIScopeRef;
|
|||||||
typedef DIRef<DIType> DITypeRef;
|
typedef DIRef<DIType> DITypeRef;
|
||||||
|
|
||||||
/// DIScope - A base class for various scopes.
|
/// DIScope - A base class for various scopes.
|
||||||
|
///
|
||||||
|
/// Although, implementation-wise, DIScope is the parent class of most
|
||||||
|
/// other DIxxx classes, including DIType and its descendants, most of
|
||||||
|
/// DIScope’s descendants are not a substitutable subtype of
|
||||||
|
/// DIScope. The DIDescriptor::isScope() method only is true for
|
||||||
|
/// DIScopes that are scopes in the strict lexical scope sense
|
||||||
|
/// (DICompileUnit, DISubprogram, etc.), but not for, e.g., a DIType.
|
||||||
class DIScope : public DIDescriptor {
|
class DIScope : public DIDescriptor {
|
||||||
protected:
|
protected:
|
||||||
friend class DIDescriptor;
|
friend class DIDescriptor;
|
||||||
|
@@ -429,8 +429,10 @@ static bool fieldIsTypeRef(const MDNode *DbgNode, unsigned Elt) {
|
|||||||
/// Check if a value can be a ScopeRef.
|
/// Check if a value can be a ScopeRef.
|
||||||
static bool isScopeRef(const Value *Val) {
|
static bool isScopeRef(const Value *Val) {
|
||||||
return !Val ||
|
return !Val ||
|
||||||
(isa<MDString>(Val) && !cast<MDString>(Val)->getString().empty()) ||
|
(isa<MDString>(Val) && !cast<MDString>(Val)->getString().empty()) ||
|
||||||
isa<MDNode>(Val);
|
// Not checking for Val->isScope() here, because it would work
|
||||||
|
// only for lexical scopes and not all subclasses of DIScope.
|
||||||
|
isa<MDNode>(Val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check if a field at position Elt of a MDNode can be a ScopeRef.
|
/// Check if a field at position Elt of a MDNode can be a ScopeRef.
|
||||||
|
Reference in New Issue
Block a user