Richard Sandiford <rdsandif...@googlemail.com> writes: > Jeff Law <l...@redhat.com> writes: >> 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. > > Thanks, I've now done #2.
Unfortunately the patch broke sparcv9-sun-solaris2* (only, sparc-sun-solaris2* is fine) bootstrap: /vol/gcc/src/hg/trunk/local/gcc/reload1.c: In function 'void elimination_costs_in_insn(rtx_insn*)': /vol/gcc/src/hg/trunk/local/gcc/reload1.c:3772:41: error: 'orig_dup[1]' may be used uninitialized in this function [-Werror=maybe-uninitialized] *recog_data.dup_loc[i] = orig_dup[i]; ^ /vol/gcc/src/hg/trunk/local/gcc/reload1.c:3772:41: error: 'orig_dup[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized] Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University