http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50294

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-09-06 
08:31:56 UTC ---
My idea with fixing the Ada issue would be to conditionally use a signed
or unsigned (sizetype) domain type.  Not sure if all of the middle-end
copes well with ssizetype domains (but well, we should fix it then).

Of course that wouldn't fix use of an even larger domain type
such as Unsigned_128_T is mod 2 ** 128 and appropriate large constants.
But I see several special-cases in the Gigi code that tries to handle
overflow situations.

Thus, I think we ideally should allow any kind of integer type in
TYPE_DOMAIN, not just sizetype variants.  But that's of course an even
bigger change.

Sidenote: my idea was to remove special-casings of TYPE_IS_SIZETYPE from
folders but have a few special-cases explicit in size_binop so we know
the definite context from which they are invoked (like from stor-layout).
That's much better than to expose the special-casing from random
optimization passes that happen to call into fold.

Reply via email to