mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-09 17:43:57 +00:00
Fix: Assertion failed: (!m_first_die || m_first_die == m_die_array.front()), function ExtractDIEsRWLocked
xbolva00 bugreported $subj in: https://reviews.llvm.org/D46810#1247410 It can happen only from the line: m_die_array.back().SetEmptyChildren(true); In the case DW_TAG_compile_unit has DW_CHILDREN_yes but there is only 0 (end of list, no children present). Therefore the assertion can fortunately happen only with a hand-crafted DWARF or with DWARF from some suboptimal compilers. Differential Revision: https://reviews.llvm.org/D53255 llvm-svn: 344605
This commit is contained in:
parent
0c29722c60
commit
faec6dd9a2
@ -261,7 +261,11 @@ void DWARFUnit::ExtractDIEsRWLocked() {
|
||||
}
|
||||
|
||||
if (!m_die_array.empty()) {
|
||||
lldbassert(!m_first_die || m_first_die == m_die_array.front());
|
||||
if (m_first_die) {
|
||||
// Only needed for the assertion.
|
||||
m_first_die.SetEmptyChildren(m_die_array.front().GetEmptyChildren());
|
||||
lldbassert(m_first_die == m_die_array.front());
|
||||
}
|
||||
m_first_die = m_die_array.front();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user