diff --git a/src/cmd/dwarf.rs b/src/cmd/dwarf.rs index f398d44..3cda39d 100644 --- a/src/cmd/dwarf.rs +++ b/src/cmd/dwarf.rs @@ -254,22 +254,6 @@ where // pre-parse step for &child in &children { preprocess_cu_tag(&info, child); - - if let TagKind::Typedef = child.kind { - // TODO fundamental typedefs? - if let Some(ud_type_ref) = - child.reference_attribute(AttributeKind::UserDefType) - { - match typedefs.entry(ud_type_ref) { - btree_map::Entry::Vacant(e) => { - e.insert(vec![child.key]); - } - btree_map::Entry::Occupied(e) => { - e.into_mut().push(child.key); - } - } - } - } } for &child in &children { let tag_type = match process_cu_tag(&info, child) { @@ -309,6 +293,22 @@ where continue; } } + + if let TagKind::Typedef = child.kind { + // TODO fundamental typedefs? + if let Some(ud_type_ref) = + child.reference_attribute(AttributeKind::UserDefType) + { + match typedefs.entry(ud_type_ref) { + btree_map::Entry::Vacant(e) => { + e.insert(vec![child.key]); + } + btree_map::Entry::Occupied(e) => { + e.into_mut().push(child.key); + } + } + } + } } } kind => bail!("Unhandled root tag type {:?}", kind),