diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 7ffb58c3d245..cc030f2640ac 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2012-09-07 Teresa Johnson + + PR gcov-profile/54487 + * libgcc/libgcov.c (gcov_exit): Avoid warning on histogram + differences. + 2012-09-05 Georg-Johann Lay PR target/54461 diff --git a/libgcc/libgcov.c b/libgcc/libgcov.c index fce8587affe3..c58427e753bb 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