> Hi.
> 
> The assert in stream_out_histogram_value is wrong about single value
> counters where we can have a negative number as a target of an indirect
> call. And likewise we use special value -1 for counters that overflow.
> 
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
> 
> Ready to be installed?
OK,
Thanks!
Honza
> Thanks,
> Martin
> 
> gcc/ChangeLog:
> 
> 2019-06-11  Martin Liska  <mli...@suse.cz>
> 
>       * value-prof.c (stream_out_histogram_value): Only first value
>       can't be negative.
> ---
>  gcc/value-prof.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 

> diff --git a/gcc/value-prof.c b/gcc/value-prof.c
> index 57ef9e441fb..7289a698b71 100644
> --- a/gcc/value-prof.c
> +++ b/gcc/value-prof.c
> @@ -331,7 +331,7 @@ 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_SINGLE_VALUE && (i > 0 && ((i - 1) % 2) == 
> 0))
> +      if (hist->type == HIST_TYPE_SINGLE_VALUE && i > 0)
>       ;
>        else
>       gcc_assert (value >= 0);
> 

Reply via email to