PR 23046. Folding predicates involving TYPE_MAX_VALUE/TYPE_MIN_VALUE (Ada RFC)
Robert Dewar
dewar@adacore.com
Fri Aug 12 17:05:00 GMT 2005
Giovanni Bajo wrote:
> Robert Dewar <dewar@adacore.com> wrote:
> Well, the point is that Gigi uses the fields TYPE_MIN/MAX_VALUE in a way
> which is (now) incorrect, and this causes wrong optimizations. Of course,
> this might be seen as an evolution (the exact semantics weren't as clear
> before), but it does not change things.
i may not know enougn here. but i thought that these were fields
associated with the type.
if so that's a wrong model for ada, where there are two situations:
a) constrycts which are allowed to assume in range
b) constructs which are not allowed to make this assumption
how do wedistinguish these cases. right now, the front end assumes
that the backend will essentially assume a) everywhere, and it
widens the type in cases b) using unchecked conversions. assuming
that uc's should be a barrier to range propagation.
>
> You can either disable the optimization or fix Gigi. I'd also note that you
> already have SRA disabled, which is an optimization which would be *very*
> useful to Ada, because of other Gigi bugs.
really not clear to me what the fix is here
More information about the Gcc
mailing list