Do not stream all zeros for gcda files.
authorMartin Liska <mliska@suse.cz>
Tue, 2 Jun 2020 08:11:07 +0000 (10:11 +0200)
committerMartin Liska <mliska@suse.cz>
Thu, 2 Jul 2020 08:16:02 +0000 (10:16 +0200)
commitece21ff6ea9d969d3b6aae82136622a7126eefc1
treead2d4be24aa0e4415a1caccbca083eed063194f0
parent8f8ea4a47f3ab0b44b2bbf1c77db6111325d4841
Do not stream all zeros for gcda files.

gcc/ChangeLog:

PR gcov-profile/95348
* coverage.c (read_counts_file): Read only COUNTERS that are
not all-zero.
* gcov-dump.c (tag_function): Change signature from unsigned to
signed integer.
(tag_blocks): Likewise.
(tag_arcs): Likewise.
(tag_lines): Likewise.
(tag_counters): Likewise.
(tag_summary): Likewise.
* gcov.c (read_count_file): Read all non-zero counters
sensitively.

libgcc/ChangeLog:

PR gcov-profile/95348
* libgcov-driver.c (merge_one_data): Merge only profiles
that are not of non-zero type.
(write_one_data): Write counters only if there's one non-zero
value.
* libgcov-util.c (tag_function): Change signature from unsigned
to int.
(tag_blocks): Likewise.
(tag_arcs): Likewise.
(tag_counters): Likewise.
(tag_summary): Likewise.
(tag_lines): Read only if COUNTERS is non-zero.
(read_gcda_file): Handle negative length for COUNTERS type.
gcc/coverage.c
gcc/gcov-dump.c
gcc/gcov.c
libgcc/libgcov-driver.c
libgcc/libgcov-util.c