mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
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. llvm-svn: 209178
This commit is contained in:
parent
e3feb01c2a
commit
c6084e64ed
@ -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,
|
||||
|
@ -33,7 +33,7 @@ attributes #0 = { sspreq }
|
||||
!5 = metadata !{}
|
||||
!6 = metadata !{metadata !7}
|
||||
!7 = metadata !{i32 786472, metadata !"max_frame_size", i64 0} ; [ DW_TAG_enumerator ] [max_frame_size :: 0]
|
||||
!8 = metadata !{metadata !9}
|
||||
!8 = metadata !{metadata !9, metadata !24, metadata !41, metadata !65}
|
||||
!9 = metadata !{i32 786478, metadata !1, metadata !10, metadata !"read_response_size", metadata !"read_response_size", metadata !"_Z18read_response_sizev", i32 27, metadata !11, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 true, i32 ()* @_Z18read_response_sizev, null, null, metadata !14, i32 27} ; [ DW_TAG_subprogram ] [line 27] [def] [read_response_size]
|
||||
!10 = metadata !{i32 786473, metadata !1} ; [ DW_TAG_file_type ] [/Users/matt/ryan_bug/<unknown>]
|
||||
!11 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
|
||||
|
@ -71,7 +71,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
|
||||
!18 = metadata !{i32 786443, metadata !26, metadata !0, i32 19510, i32 1, i32 99} ; [ DW_TAG_lexical_block ]
|
||||
!22 = metadata !{i32 18094, i32 2, metadata !15, metadata !17}
|
||||
!23 = metadata !{i32 19524, i32 1, metadata !18, null}
|
||||
!24 = metadata !{metadata !0, metadata !6, metadata !7, metadata !8}
|
||||
!24 = metadata !{metadata !0, metadata !6, metadata !7, metadata !8, metadata !16}
|
||||
!25 = metadata !{i32 786473, metadata !27} ; [ DW_TAG_file_type ]
|
||||
!26 = metadata !{metadata !"/tmp/f.c", metadata !"/tmp"}
|
||||
!27 = metadata !{metadata !"f.i", metadata !"/tmp"}
|
||||
|
Loading…
Reference in New Issue
Block a user