Fix reload1.c warning for some targets

Jeff Law law@redhat.com
Wed Aug 12 17:17:00 GMT 2015


On 08/05/2015 08:18 AM, Richard Sandiford wrote:
> Building some targets results in a warning about orig_dup[i] potentially
> being used uninitialised.  I think the warning is fair, since it isn't
> obvious that the reog_data-based loop bound remains unchanged between:
>
>    for (i = 0; i < recog_data.n_dups; i++)
>      orig_dup[i] = *recog_data.dup_loc[i];
>
> and:
>
>    for (i = 0; i < recog_data.n_dups; i++)
>      *recog_data.dup_loc[i] = orig_dup[i];
>
> Tested on x86_64-linux-gnu.  OK to install?
>
> Thanks,
> Richard
>
> gcc/
> 	* reload1.c (elimination_costs_in_insn): Make it obvious to the
> 	compiler that the n_dups and n_operands loop bounds are invariant.
So thinking more about this, I think the best way forward is to:

   1. Create a new BZ with the false positive extracted from c#4.

   2. Install your patch and close 55035.

I'll take care of #1, you can handle #2.


jeff



More information about the Gcc-patches mailing list