From: Mark Wielaard Date: Wed, 15 Nov 2023 16:33:42 +0000 (+0100) Subject: readelf: Don't print average number of tests when no tests are done X-Git-Tag: elfutils-0.191~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=374bf6ab3b79637d02183e10899d40243349e4d1;p=thirdparty%2Felfutils.git readelf: Don't print average number of tests when no tests are done If the symbol hash table only contains lenght zero chains, no lookup tests need to be done and eu-readelf -I would print out bogus numbers for the number of tests that were successful/unsuccessful. e.g. for an "empty" program like int main() {} eu-readelf -I would print: Histogram for bucket list length in section [ 5] '.gnu.hash' (total of 1 bucket): Addr: 0x00000000004003c0 Offset: 0x0003c0 Link to section: [ 6] '.dynsym' Symbol Bias: 1 Bitmask Size: 8 bytes 0% bits set 2nd hash shift: 0 Length Number % of total Coverage 0 1 100.0% Average number of tests: successful lookup: -nan unsuccessful lookup: 0.000000 Only print out the Average number of tests when there were actual tests to do. Signed-off-by: Mark Wielaard --- diff --git a/src/readelf.c b/src/readelf.c index decfaf155..802f8edec 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -3644,11 +3644,12 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, size_t shstrndx, success += counts[cnt] * acc; } - printf (_("\ + if (nzero_counts > 0) + printf (_("\ Average number of tests: successful lookup: %f\n\ unsuccessful lookup: %f\n"), - (double) success / (double) nzero_counts, - (double) nzero_counts / (double) nbucket); + (double) success / (double) nzero_counts, + (double) nzero_counts / (double) nbucket); } free (counts);