PR 61136: wide-int fallout in int_const_binop_1

Mike Stump mikestump@comcast.net
Sat May 10 23:45:00 GMT 2014


On May 10, 2014, at 12:11 PM, Richard Sandiford <rdsandiford@googlemail.com> wrote:
> The new conversion can't be right because it loses overflow information.
> The question then is whether this function should be prepared to handle
> mismatched arguments (as the pre-wide-int version effectively did, since
> it did everything in double_int precision) or whether the operation
> should be strictly typed.  If the former then the function should be
> doing the calculation in widest_int, which would make it a much more
> direct analogue of the original code.  If the latter then we should be
> able to operate directly on arg2.

I think I caused this, but I don’t think I had a deep reason for doing it, just trying to bring them to a common type.

I think a fold person should weigh in.

> I tried making int_const_binop_1 strictly typed and the only thing
> that was needed to pass bootstrap was a fairly obvious-looking patch
> to the Ada frontend.  But there's quite a bit of fallout in the testsuite
> itself (including the above).

> This patch therefore uses wi:: directly.
> I think this is worth doing independently of the eventual patches to fix
> the type incompatibilities elsewhere.

I think that seems fine.

> OK to install?

Ok.



More information about the Gcc-patches mailing list