mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 00:24:26 +00:00
Sink DwarfDebug::createAndAddScopeChildren down into DwarfCompileUnit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219437 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -599,8 +599,7 @@ void DwarfCompileUnit::constructSubprogramScopeDIE(LexicalScope *Scope) {
|
||||
// Collect lexical scope children first.
|
||||
// ObjectPointer might be a local (non-argument) local variable if it's a
|
||||
// block's synthetic this pointer.
|
||||
if (DIE *BlockObjPtr =
|
||||
DD->createAndAddScopeChildren(*this, Scope, ScopeDIE)) {
|
||||
if (DIE *BlockObjPtr = createAndAddScopeChildren(Scope, ScopeDIE)) {
|
||||
assert(!ObjectPointer && "multiple object pointers can't be described");
|
||||
ObjectPointer = BlockObjPtr;
|
||||
}
|
||||
@ -609,4 +608,17 @@ void DwarfCompileUnit::constructSubprogramScopeDIE(LexicalScope *Scope) {
|
||||
addDIEEntry(ScopeDIE, dwarf::DW_AT_object_pointer, *ObjectPointer);
|
||||
}
|
||||
|
||||
DIE *DwarfCompileUnit::createAndAddScopeChildren(LexicalScope *Scope,
|
||||
DIE &ScopeDIE) {
|
||||
// We create children when the scope DIE is not null.
|
||||
SmallVector<std::unique_ptr<DIE>, 8> Children;
|
||||
DIE *ObjectPointer = createScopeChildrenDIE(Scope, Children);
|
||||
|
||||
// Add children
|
||||
for (auto &I : Children)
|
||||
ScopeDIE.addChild(std::move(I));
|
||||
|
||||
return ObjectPointer;
|
||||
}
|
||||
|
||||
} // end llvm namespace
|
||||
|
Reference in New Issue
Block a user