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

Reply via email to