PR 23046. Folding predicates involving TYPE_MAX_VALUE/TYPE_MIN_VALUE (Ada RFC)
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Fri Aug 12 16:17:00 GMT 2005
Well, the point is that Gigi uses the fields TYPE_MIN/MAX_VALUE in a
way which is (now) incorrect,
No, that usage is correct. What's incorrect is the way that 'Valid and
range checks are being implemented and/or optimized. Those should not be
using the bounds of the subtype.
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.
No, SRA is disabled due to a very subtle front-end issue having to do
with renamed discriminants in cases where the resulting subtype has
fewer fields than the original record. The front end has to include the
"nonexistant" fields in the subtype for Gigi's use but in a way that
won't interfere with front-end semantics. This has been on the to-do list
for the front end folks for quite a while.
More information about the Gcc
mailing list