From f9d71da24e497af7fc00bf38f88e494053b06a81 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Tue, 8 Mar 2011 18:53:22 +0100 Subject: [PATCH] dwarflint: Fix iteration over low-level attributes - this to allow (certainly bogus, but anyway) attribute name == 0 - test case that triggers this --- dwarflint/check_debug_info.cc | 4 ++-- dwarflint/tests/garbage-3.bz2 | Bin 0 -> 2765 bytes dwarflint/tests/run-bad.sh | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 dwarflint/tests/garbage-3.bz2 diff --git a/dwarflint/check_debug_info.cc b/dwarflint/check_debug_info.cc index 6672c8c8d..348dad0d2 100644 --- a/dwarflint/check_debug_info.cc +++ b/dwarflint/check_debug_info.cc @@ -642,7 +642,7 @@ namespace /* Attribute values. */ for (struct abbrev_attrib *it = abbrev->attribs; - it->name != 0; ++it) + it->name != 0 || it->form != 0; ++it) { where.ref = &it->where; @@ -1097,7 +1097,7 @@ check_debug_info::check_debug_info (checkstack &stack, dwarflint &lint) if (!it->second.abbr[i].used) wr_message (it->second.abbr[i].where, cat (mc_impact_3, mc_acc_bloat, mc_abbrevs)) - << ": abbreviation is never used." << std::endl; + << "abbreviation is never used." << std::endl; } // re-link CUs so that they form a chain again. This is to diff --git a/dwarflint/tests/garbage-3.bz2 b/dwarflint/tests/garbage-3.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ad66a414e25f17ccf72bbc762c4936f31222a22c GIT binary patch literal 2765 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 T>AZJU|Ha&qP81{-?OX!D*98ay literal 0 Hc-jL100001 diff --git a/dwarflint/tests/run-bad.sh b/dwarflint/tests/run-bad.sh index 871fe551c..38b9be1a3 100755 --- a/dwarflint/tests/run-bad.sh +++ b/dwarflint/tests/run-bad.sh @@ -27,7 +27,7 @@ srcdir=$srcdir/tests -testfiles hello.bad-1 hello.bad-3 garbage-1 garbage-2 +testfiles hello.bad-1 hello.bad-3 garbage-1 garbage-2 garbage-3 testrun_compare ./dwarflint hello.bad-1 <