mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Debug Info: move DIScope::getContext to DwarfDebug.
DIScope::getContext is a wrapper function that calls the specific getContext method on each subclass. When we switch DIType::getContext to return DIScopeRef instead of DIScope, DIScope::getContext can no longer return a DIScope without a type identifier map. DIScope::getContext is only used by DwarfDebug, so we move it to DwarfDebug to have easy access to the type identifier map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190330 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -2650,3 +2650,26 @@ void DwarfDebug::emitDebugStrDWO() {
|
||||
DIScope DwarfDebug::resolve(DIScopeRef SRef) const {
|
||||
return SRef.resolve(TypeIdentifierMap);
|
||||
}
|
||||
|
||||
// If the current node has a parent scope then return that,
|
||||
// else return an empty scope.
|
||||
DIScope DwarfDebug::getScopeContext(DIScope S) const {
|
||||
|
||||
if (S.isType())
|
||||
return DIType(S).getContext();
|
||||
|
||||
if (S.isSubprogram())
|
||||
return DISubprogram(S).getContext();
|
||||
|
||||
if (S.isLexicalBlock())
|
||||
return DILexicalBlock(S).getContext();
|
||||
|
||||
if (S.isLexicalBlockFile())
|
||||
return DILexicalBlockFile(S).getContext();
|
||||
|
||||
if (S.isNameSpace())
|
||||
return DINameSpace(S).getContext();
|
||||
|
||||
assert((S.isFile() || S.isCompileUnit()) && "Unhandled type of scope.");
|
||||
return DIScope();
|
||||
}
|
||||
|
Reference in New Issue
Block a user