From 84dc3879f377ddaecb4054a7bf7671114dfb7228 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 25 Sep 2020 16:21:34 +0200 Subject: [PATCH] gcov: fix streaming of HIST_TYPE_IOR histogram type. gcc/ChangeLog: PR gcov-profile/64636 * value-prof.c (stream_out_histogram_value): Allow negative values for HIST_TYPE_IOR. (cherry picked from commit 1921ebcaf6467996aede69e1bbe32400d8a20fe7) --- gcc/value-prof.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/value-prof.c b/gcc/value-prof.c index 45677be46b1e..9d60b56c43aa 100644 --- a/gcc/value-prof.c +++ b/gcc/value-prof.c @@ -332,7 +332,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); -- 2.47.2