This is the mail archive of the
mailing list for the GCC project.
Re: [wide-int] Fix mode choice in convert_modes
- From: Kenneth Zadeck <zadeck at naturalbridge dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Mike Stump <mikestump at comcast dot net>, rdsandiford at googlemail dot com
- Date: Mon, 09 Sep 2013 10:05:39 -0400
- Subject: Re: [wide-int] Fix mode choice in convert_modes
- Authentication-results: sourceware.org; auth=none
- References: <871u4ygmwq dot fsf at talisman dot default> <CAFiYyc3mAZFtjviUixuWnS+=m5HbSOu-tpDrn=Eg1mAtfjJRyw at mail dot gmail dot com> <87a9jm9k0b dot fsf at sandifor-thinkpad dot stglab dot manchester dot uk dot ibm dot com>
On 09/09/2013 09:56 AM, Richard Sandiford wrote:
Richard Biener <email@example.com> writes:
On Mon, Sep 9, 2013 at 3:11 PM, Richard Sandiford
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
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.
yes, this is what my patch does now.