aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgcc/ChangeLog6
-rw-r--r--libgcc/libgcov.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 7ffb58c..cc030f2 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-09-07 Teresa Johnson <tejohnson@google.com>
+
+ PR gcov-profile/54487
+ * libgcc/libgcov.c (gcov_exit): Avoid warning on histogram
+ differences.
+
2012-09-05 Georg-Johann Lay <avr@gjlay.de>
PR target/54461
diff --git a/libgcc/libgcov.c b/libgcc/libgcov.c
index fce8587..c58427e 100644
--- a/libgcc/libgcov.c
+++ b/libgcc/libgcov.c
@@ -707,7 +707,13 @@ gcov_exit (void)
memcpy (cs_all, cs_prg, sizeof (*cs_all));
else if (!all_prg.checksum
&& (!GCOV_LOCKED || cs_all->runs == cs_prg->runs)
- && memcmp (cs_all, cs_prg, sizeof (*cs_all)))
+ /* Don't compare the histograms, which may have slight
+ variations depending on the order they were updated
+ due to the truncating integer divides used in the
+ merge. */
+ && memcmp (cs_all, cs_prg,
+ sizeof (*cs_all) - (sizeof (gcov_bucket_type)
+ * GCOV_HISTOGRAM_SIZE)))
{
fprintf (stderr, "profiling:%s:Invocation mismatch - some data files may have been removed%s\n",
gi_filename, GCOV_LOCKED