Jakub Jelinek <ja...@redhat.com> wrote:
>On Mon, Dec 16, 2013 at 11:12:40PM +0100, Jakub Jelinek wrote:
>> When testing the patch the overflow-2.c testcase didn't exist yet,
>> nor was ubsan on -m32 actually ever reporting overflows on the DImode
>> multiplication (it simply expanded it as normal DImode multiplication
>with
>> no overflow checking).
>> 
>> To me this looks like very old bug (r2174 added it), will
>bootstrap/regtest
>> this:
>> 
>> 2013-12-16  Jakub Jelinek  <ja...@redhat.com>
>> 
>>      * expr.c (convert_modes): For SUBREG_PROMOTED_VAR_P use SUBREG_REG
>(x)
>>      instead of x as last gen_lowpart argument.
>> 
>> --- gcc/expr.c.jj    2013-12-12 09:39:45.000000000 +0100
>> +++ gcc/expr.c       2013-12-16 23:05:07.519747459 +0100
>> @@ -719,7 +719,7 @@ convert_modes (enum machine_mode mode, e
>>    if (GET_CODE (x) == SUBREG && SUBREG_PROMOTED_VAR_P (x)
>>        && GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) >= GET_MODE_SIZE
>(mode)
>>        && SUBREG_PROMOTED_UNSIGNED_P (x) == unsignedp)
>> -    x = gen_lowpart (mode, x);
>> +    x = gen_lowpart (mode, SUBREG_REG (x));
>>  
>>    if (GET_MODE (x) != VOIDmode)
>>      oldmode = GET_MODE (x);
>> 
>
>Successfully bootstrapped/regtested on x86_64-linux and i686-linux, ok
>for
>trunk?

Ok.

Thanks,
Richard.

>       Jakub


Reply via email to