diff options
Diffstat (limited to 'dwarflint/check_linkage_external_die.cc')
-rw-r--r-- | dwarflint/check_linkage_external_die.cc | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/dwarflint/check_linkage_external_die.cc b/dwarflint/check_linkage_external_die.cc index 9d759dd1..d615afae 100644 --- a/dwarflint/check_linkage_external_die.cc +++ b/dwarflint/check_linkage_external_die.cc @@ -99,27 +99,12 @@ namespace static bool is_external (all_dies_iterator<dwarf> const &it) { - bool candidates = true; dwarf::debug_info_entry entry = *it; - do - { - dwarf::debug_info_entry::attributes_type attrs = entry.attributes (); - if (attrs.find (DW_AT_external) != attrs.end ()) - return true; - - dwarf::debug_info_entry::attributes_type::const_iterator origin - = attrs.find (DW_AT_abstract_origin); - if (origin == attrs.end ()) - origin = attrs.find (DW_AT_specification); - - if (origin != attrs.end ()) - entry = *(*origin).second.reference (); - else - candidates = false; - } - while (candidates); + dwarf::debug_info_entry::attributes_type attrs = (*it).attributes (); + dwarf::debug_info_entry::attributes_type::const_iterator external + = attrs.find_integrate (DW_AT_external); - return false; + return external != attrs.end () && (*external).second.flag (); } virtual void |