DebugInfo: Assume all subprogram DIEs have been created before any abstract subprograms are constructed.

Since we visit the whole list of subprograms for each CU at module
start, this is clearly true - don't test for the case, just assert it.

A few old test cases seemed to have incomplete subprogram lists, but any
attempt to reproduce them shows full subprogram lists that even include
entities that have been completely inlined and the out of line
definition removed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209178 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie
2014-05-19 23:16:19 +00:00
parent e267439365
commit c108a06c86
3 changed files with 7 additions and 7 deletions
+5 -5
View File
@@ -552,11 +552,11 @@ void DwarfDebug::constructAbstractSubprogramScopeDIE(DwarfCompileUnit &TheCU,
if (!ProcessedSPNodes.insert(Sub))
return;
if (DIE *ScopeDIE = TheCU.getDIE(Sub)) {
AbstractSPDies.insert(std::make_pair(Sub, ScopeDIE));
TheCU.addUInt(*ScopeDIE, dwarf::DW_AT_inline, None, dwarf::DW_INL_inlined);
createAndAddScopeChildren(TheCU, Scope, *ScopeDIE);
}
DIE *ScopeDIE = TheCU.getDIE(Sub);
assert(ScopeDIE);
AbstractSPDies.insert(std::make_pair(Sub, ScopeDIE));
TheCU.addUInt(*ScopeDIE, dwarf::DW_AT_inline, None, dwarf::DW_INL_inlined);
createAndAddScopeChildren(TheCU, Scope, *ScopeDIE);
}
DIE &DwarfDebug::constructSubprogramScopeDIE(DwarfCompileUnit &TheCU,