From: Petr Machata Date: Wed, 6 Apr 2011 10:08:41 +0000 (+0200) Subject: Merge branch 'dwarf' of ssh://git.fedorahosted.org/git/elfutils into dwarf X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b9f40e90ca170a23fa1c60c5271be2ed083c81ab;p=thirdparty%2Felfutils.git Merge branch 'dwarf' of ssh://git.fedorahosted.org/git/elfutils into dwarf --- b9f40e90ca170a23fa1c60c5271be2ed083c81ab diff --cc dwarflint/check_linkage_external_die.cc index e18d0e973,7cebc46ba..485ac8457 --- a/dwarflint/check_linkage_external_die.cc +++ b/dwarflint/check_linkage_external_die.cc @@@ -53,24 -46,25 +46,25 @@@ namespac return &cd; } - explicit check_linkage_external_die (checkstack &stack, dwarflint &lint) - : highlevel_check (stack, lint) - check_linkage_external_die (checkstack &, dwarflint &) ++ check_linkage_external_die (highlevel_check_i *, checkstack &, dwarflint &) + { + // We don't keep any state for this die check. + } + + virtual void + die (all_dies_iterator const &it) { - for (all_dies_iterator it = all_dies_iterator (dw); - it != all_dies_iterator (); ++it) + dwarf::debug_info_entry const &entry = *it; + dwarf::debug_info_entry::attributes_type attrs = entry.attributes (); + if ((attrs.find (DW_AT_linkage_name) != attrs.end () + || attrs.find (DW_AT_MIPS_linkage_name) != attrs.end ()) + && attrs.find (DW_AT_external) == attrs.end ()) { - dwarf::debug_info_entry const &die = *it; - dwarf::debug_info_entry::attributes_type attrs = die.attributes (); - if ((attrs.find (DW_AT_linkage_name) != attrs.end () - || attrs.find (DW_AT_MIPS_linkage_name) != attrs.end ()) - && attrs.find (DW_AT_external) == attrs.end ()) - { - wr_message (to_where (die), - mc_impact_3 | mc_acc_suboptimal | mc_die_other) - << elfutils::dwarf::tags::name (die.tag ()) - << " has linkage_name attribute, but no external attribute." - << std::endl; - } + wr_message (to_where (entry), + mc_impact_3 | mc_acc_suboptimal | mc_die_other) + << elfutils::dwarf::tags::name (entry.tag ()) + << " has linkage_name attribute, but no external attribute." + << std::endl; } } }; diff --cc dwarflint/check_self_referential_die.cc index 196193b65,47fde9916..bf62bf4a3 --- a/dwarflint/check_self_referential_die.cc +++ b/dwarflint/check_self_referential_die.cc @@@ -55,27 -48,29 +48,29 @@@ namespac return &cd; } - explicit check_self_referential_die (checkstack &stack, dwarflint &lint) - : highlevel_check (stack, lint) - check_self_referential_die (checkstack &, dwarflint &) ++ check_self_referential_die (highlevel_check_i *, checkstack &, dwarflint &) + { + // We don't keep any state for this die check. + } + + virtual void + die (all_dies_iterator const &it) { - for (all_dies_iterator it = all_dies_iterator (dw); - it != all_dies_iterator (); ++it) + dwarf::debug_info_entry const &entry = *it; + for (dwarf::debug_info_entry::attributes_type::const_iterator + at = entry.attributes ().begin (); + at != entry.attributes ().end (); ++at) { - dwarf::debug_info_entry const &die = *it; - for (dwarf::debug_info_entry::attributes_type::const_iterator - at = die.attributes ().begin (); - at != die.attributes ().end (); ++at) + dwarf::attr_value const &val = (*at).second; + if (val.what_space () == dwarf::VS_reference) { - dwarf::attr_value const &val = (*at).second; - if (val.what_space () == dwarf::VS_reference) - { - dwarf::debug_info_entry ref = *val.reference (); - if (ref.identity () == die.identity ()) - wr_message (to_where (die), - mc_impact_3 | mc_acc_suboptimal | mc_die_rel) - << "attribute " << dwarf::attributes::name ((*at).first) - << " references DIE itself." << std::endl; - } + dwarf::debug_info_entry ref = *val.reference (); + if (ref.identity () == entry.identity ()) + wr_message (to_where (entry), + mc_impact_3 | mc_acc_suboptimal | mc_die_rel) + << dwarf::tags::name (entry.tag ()) + << " attribute " << dwarf::attributes::name ((*at).first) + << " references DIE itself." << std::endl; } } }