mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 02:33:33 +00:00
DebugInfo: Move DIScope::getName() and getContext() to MDScope
Continue gutting the `DIDescriptor` hierarchy. In this case, move the guts of `DIScope::getName()` and `DIScope::getContext()` to `MDScope::getName()` and `MDScope::getScope()`. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234691 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
829e013107
commit
4e1b79bbd8
@ -213,15 +213,8 @@ public:
|
||||
return *get();
|
||||
}
|
||||
|
||||
/// \brief Get the parent scope.
|
||||
///
|
||||
/// Gets the parent scope for this scope node or returns a default
|
||||
/// constructed scope.
|
||||
DIScopeRef getContext() const;
|
||||
/// \brief Get the scope name.
|
||||
///
|
||||
/// If the scope node has a name, return that, else return an empty string.
|
||||
StringRef getName() const;
|
||||
inline DIScopeRef getContext() const;
|
||||
StringRef getName() const { return get()->getName(); }
|
||||
StringRef getFilename() const { return get()->getFilename(); }
|
||||
StringRef getDirectory() const { return get()->getDirectory(); }
|
||||
|
||||
@ -258,6 +251,8 @@ template <>
|
||||
DIScope DIRef<DIScope>::resolve(const DITypeIdentifierMap &Map) const;
|
||||
template <> DIType DIRef<DIType>::resolve(const DITypeIdentifierMap &Map) const;
|
||||
|
||||
DIScopeRef DIScope::getContext() const { return get()->getScope(); }
|
||||
|
||||
/// \brief This is a wrapper for a type.
|
||||
///
|
||||
/// FIXME: Types should be factored much better so that CV qualifiers and
|
||||
|
@ -419,6 +419,9 @@ public:
|
||||
inline StringRef getFilename() const;
|
||||
inline StringRef getDirectory() const;
|
||||
|
||||
StringRef getName() const;
|
||||
MDScopeRef getScope() const;
|
||||
|
||||
/// \brief Return the raw underlying file.
|
||||
///
|
||||
/// An \a MDFile is an \a MDScope, but it doesn't point at a separate file
|
||||
|
@ -112,37 +112,6 @@ GlobalVariable *DIGlobalVariable::getGlobal() const {
|
||||
return dyn_cast_or_null<GlobalVariable>(getConstant());
|
||||
}
|
||||
|
||||
DIScopeRef DIScope::getContext() const {
|
||||
if (DIType T = dyn_cast<MDType>(*this))
|
||||
return T.getContext();
|
||||
|
||||
if (DISubprogram SP = dyn_cast<MDSubprogram>(*this))
|
||||
return MDScopeRef(SP.getContext());
|
||||
|
||||
if (DILexicalBlock LB = dyn_cast<MDLexicalBlockBase>(*this))
|
||||
return MDScopeRef(LB.getContext());
|
||||
|
||||
if (DINameSpace NS = dyn_cast<MDNamespace>(*this))
|
||||
return MDScopeRef(NS.getContext());
|
||||
|
||||
assert((isa<MDFile>(*this) || isa<MDCompileUnit>(*this)) &&
|
||||
"Unhandled type of scope.");
|
||||
return MDScopeRef();
|
||||
}
|
||||
|
||||
StringRef DIScope::getName() const {
|
||||
if (DIType T = dyn_cast<MDType>(*this))
|
||||
return T.getName();
|
||||
if (DISubprogram SP = dyn_cast<MDSubprogram>(*this))
|
||||
return SP.getName();
|
||||
if (DINameSpace NS = dyn_cast<MDNamespace>(*this))
|
||||
return NS.getName();
|
||||
assert((isa<MDLexicalBlockBase>(*this) || isa<MDFile>(*this) ||
|
||||
isa<MDCompileUnit>(*this)) &&
|
||||
"Unhandled type of scope.");
|
||||
return StringRef();
|
||||
}
|
||||
|
||||
void DICompileUnit::replaceSubprograms(DIArray Subprograms) {
|
||||
get()->replaceSubprograms(MDSubprogramArray(Subprograms));
|
||||
}
|
||||
|
@ -108,6 +108,36 @@ unsigned DebugNode::splitFlags(unsigned Flags,
|
||||
return Flags;
|
||||
}
|
||||
|
||||
MDScopeRef MDScope::getScope() const {
|
||||
if (auto *T = dyn_cast<MDType>(this))
|
||||
return T->getScope();
|
||||
|
||||
if (auto *SP = dyn_cast<MDSubprogram>(this))
|
||||
return SP->getScope();
|
||||
|
||||
if (auto *LB = dyn_cast<MDLexicalBlockBase>(this))
|
||||
return MDScopeRef(LB->getScope());
|
||||
|
||||
if (auto *NS = dyn_cast<MDNamespace>(this))
|
||||
return MDScopeRef(NS->getScope());
|
||||
|
||||
assert((isa<MDFile>(this) || isa<MDCompileUnit>(this)) &&
|
||||
"Unhandled type of scope.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
StringRef MDScope::getName() const {
|
||||
if (auto *T = dyn_cast<MDType>(this))
|
||||
return T->getName();
|
||||
if (auto *SP = dyn_cast<MDSubprogram>(this))
|
||||
return SP->getName();
|
||||
if (auto *NS = dyn_cast<MDNamespace>(this))
|
||||
return NS->getName();
|
||||
assert((isa<MDLexicalBlockBase>(this) || isa<MDFile>(this) ||
|
||||
isa<MDCompileUnit>(this)) &&
|
||||
"Unhandled type of scope.");
|
||||
return "";
|
||||
}
|
||||
|
||||
static StringRef getString(const MDString *S) {
|
||||
if (S)
|
||||
|
Loading…
x
Reference in New Issue
Block a user