diff options
author | Martin Liska <mliska@suse.cz> | 2021-09-09 13:02:24 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2021-10-13 15:26:58 +0200 |
commit | 72e0c742bd01f8e7e6dcca64042b9ad7e75979de (patch) | |
tree | b902a8580178ec7ed6d4dc9416679a4d92f81e78 /gcc/gcov-dump.c | |
parent | 489c8f27296362dcfbc967aecef17ba7c5cab0f2 (diff) | |
download | gcc-72e0c742bd01f8e7e6dcca64042b9ad7e75979de.zip gcc-72e0c742bd01f8e7e6dcca64042b9ad7e75979de.tar.gz gcc-72e0c742bd01f8e7e6dcca64042b9ad7e75979de.tar.bz2 |
gcov: make profile merging smarter
Support merging of profiles that are built from a different .o files
but belong to the same source file. Moreover, a checksum is verified
during profile merging and so we can safely combine such profile.
PR gcov-profile/90364
gcc/ChangeLog:
* coverage.c (build_info): Emit checksum to the global variable.
(build_info_type): Add new field for checksum.
(coverage_obj_finish): Pass object_checksum.
(coverage_init): Use 0 as checksum for .gcno files.
* gcov-dump.c (dump_gcov_file): Dump also new checksum field.
* gcov.c (read_graph_file): Read also checksum.
* doc/invoke.texi: Document the behaviour change.
libgcc/ChangeLog:
* libgcov-driver.c (merge_one_data): Skip timestamp and verify
checksums.
(write_one_data): Write also checksum.
* libgcov-util.c (read_gcda_file): Read also checksum field.
* libgcov.h (struct gcov_info): Add new field.
Diffstat (limited to 'gcc/gcov-dump.c')
-rw-r--r-- | gcc/gcov-dump.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/gcov-dump.c b/gcc/gcov-dump.c index f1489fe..bfaf735 100644 --- a/gcc/gcov-dump.c +++ b/gcc/gcov-dump.c @@ -206,11 +206,12 @@ dump_gcov_file (const char *filename) } /* stamp */ - { - unsigned stamp = gcov_read_unsigned (); + unsigned stamp = gcov_read_unsigned (); + printf ("%s:stamp %lu\n", filename, (unsigned long)stamp); - printf ("%s:stamp %lu\n", filename, (unsigned long)stamp); - } + /* Checksum */ + unsigned checksum = gcov_read_unsigned (); + printf ("%s:checksum %lu\n", filename, (unsigned long)checksum); if (!is_data_type) { |