[wide-int] Fix mode choice in convert_modes

Richard Sandiford rdsandiford@googlemail.com
Mon Sep 9 14:05:00 GMT 2013


Richard Biener <richard.guenther@gmail.com> writes:
> On Mon, Sep 9, 2013 at 3:11 PM, Richard Sandiford
> <rdsandiford@googlemail.com> wrote:
>> Enabling the CONST_INT assert showed that this branch-local code was
>> passing the wrong mode to std::make_pair.  The mode of X is OLDMODE,
>> and we're supposed to be converting it to MODE.
>>
>> In the case where OLDMODE is VOIDmode, I think we have to assume
>> that every bit of the input is significant.
>>
>> Tested on x86_64-linux-gnu.  OK to install?
>>
>> This and the other patches that I just committed to trunk are enough
>> for a bootstrap and regression test to pass on x86_64-linux-gnu with
>> the assertion for a canonical CONST_INT enabled.  I think it would be
>> better to leave the assertion out until after the merge though,
>> so we can deal with any fallout separately.
>
> If consuming code assumes CONST_INTs are canonical we better leave it
> in though.

Yeah, I think the patch Kenny's working on is going to canonise CONST_INTs
via the scratch array, to avoid making any assumptions.  I think we should
keep that for the merge and only swap it for an assert later.

Thanks,
Richard



More information about the Gcc-patches mailing list