gcov: fix streaming of HIST_TYPE_IOR histogram type.
authorMartin Liska <mliska@suse.cz>
Fri, 25 Sep 2020 14:21:34 +0000 (16:21 +0200)
committerMartin Liska <mliska@suse.cz>
Fri, 25 Sep 2020 14:26:19 +0000 (16:26 +0200)
gcc/ChangeLog:

PR gcov-profile/64636
* value-prof.c (stream_out_histogram_value): Allow negative
values for HIST_TYPE_IOR.

gcc/value-prof.c

index ea1b1a8f98f59f2085142b9d7117d5d0c4cc515f..95d33c63a0cb45825a3ee87f463730c16e93c02d 100644 (file)
@@ -331,7 +331,10 @@ stream_out_histogram_value (struct output_block *ob, histogram_value hist)
       /* When user uses an unsigned type with a big value, constant converted
         to gcov_type (a signed type) can be negative.  */
       gcov_type value = hist->hvalue.counters[i];
-      if (hist->type == HIST_TYPE_TOPN_VALUES)
+      if (hist->type == HIST_TYPE_TOPN_VALUES
+         || hist->type == HIST_TYPE_IOR)
+       /* Note that the IOR counter tracks pointer values and these can have
+          sign bit set.  */
        ;
       else
        gcc_assert (value >= 0);