aboutsummaryrefslogtreecommitdiff
path: root/libgcc/libgcov.h
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-09-09 13:02:24 +0200
committerMartin Liska <mliska@suse.cz>2021-10-13 15:26:58 +0200
commit72e0c742bd01f8e7e6dcca64042b9ad7e75979de (patch)
treeb902a8580178ec7ed6d4dc9416679a4d92f81e78 /libgcc/libgcov.h
parent489c8f27296362dcfbc967aecef17ba7c5cab0f2 (diff)
downloadgcc-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 'libgcc/libgcov.h')
-rw-r--r--libgcc/libgcov.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libgcc/libgcov.h b/libgcc/libgcov.h
index f6354a7..2a365c9 100644
--- a/libgcc/libgcov.h
+++ b/libgcc/libgcov.h
@@ -230,6 +230,7 @@ struct gcov_info
struct gcov_info *next; /* link to next, used by libgcov */
gcov_unsigned_t stamp; /* uniquifying time stamp */
+ gcov_unsigned_t checksum; /* unique object checksum */
const char *filename; /* output file name */
gcov_merge_fn merge[GCOV_COUNTERS]; /* merge functions (null for