From bb5307a6aecb937079339bccba5608924b7ab634 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Thu, 21 Dec 2017 15:22:08 +0100 Subject: [PATCH] Fix gcov-dump tool for GCDA files (PR gcov-profile/83509). 2017-12-21 Martin Liska PR gcov-profile/83509 * gcov-dump.c (dump_gcov_file): Do not read info about support_unexecuted_blocks for gcda files. From-SVN: r255941 --- gcc/ChangeLog | 6 ++++++ gcc/gcov-dump.c | 20 ++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c411e49..fd78d89 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-12-21 Martin Liska + + PR gcov-profile/83509 + * gcov-dump.c (dump_gcov_file): Do not read info about + support_unexecuted_blocks for gcda files. + 2017-12-21 Jakub Jelinek PR rtl-optimization/82973 diff --git a/gcc/gcov-dump.c b/gcc/gcov-dump.c index e5e649c..7dc28bb 100644 --- a/gcc/gcov-dump.c +++ b/gcc/gcov-dump.c @@ -170,6 +170,7 @@ dump_gcov_file (const char *filename) { unsigned tags[4]; unsigned depth = 0; + bool is_data_type; if (!gcov_open (filename, 1)) { @@ -181,14 +182,13 @@ dump_gcov_file (const char *filename) { unsigned magic = gcov_read_unsigned (); unsigned version; - const char *type = NULL; int endianness = 0; char m[4], v[4]; if ((endianness = gcov_magic (magic, GCOV_DATA_MAGIC))) - type = "data"; + is_data_type = true; else if ((endianness = gcov_magic (magic, GCOV_NOTE_MAGIC))) - type = "note"; + is_data_type = false; else { printf ("%s:not a gcov file\n", filename); @@ -199,7 +199,8 @@ dump_gcov_file (const char *filename) GCOV_UNSIGNED2STRING (v, version); GCOV_UNSIGNED2STRING (m, magic); - printf ("%s:%s:magic `%.4s':version `%.4s'%s\n", filename, type, + printf ("%s:%s:magic `%.4s':version `%.4s'%s\n", filename, + is_data_type ? "data" : "note", m, v, endianness < 0 ? " (swapped endianness)" : ""); if (version != GCOV_VERSION) { @@ -217,10 +218,13 @@ dump_gcov_file (const char *filename) printf ("%s:stamp %lu\n", filename, (unsigned long)stamp); } - /* Support for unexecuted basic blocks. */ - unsigned support_unexecuted_blocks = gcov_read_unsigned (); - if (!support_unexecuted_blocks) - printf ("%s: has_unexecuted_block is not supported\n", filename); + if (!is_data_type) + { + /* Support for unexecuted basic blocks. */ + unsigned support_unexecuted_blocks = gcov_read_unsigned (); + if (!support_unexecuted_blocks) + printf ("%s: has_unexecuted_block is not supported\n", filename); + } while (1) { -- 2.7.4