This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix Ada bootstrap on i386
- From: Florian Weimer <fw at deneb dot enyo dot de>
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 03 May 2005 01:06:35 +0200
- Subject: Re: Fix Ada bootstrap on i386
- References: <20050502225316.GA13256@topo.toronto.redhat.com>
* Diego Novillo:
> + The fact that the type specifies MIN and MAX values does not
> + automatically mean that every variable of that type will always
> + be within that range, so the predicate may well be true at run
> + time. If we had symbolic -INF and +INF values, we could
> + represent this range, but we currently represent -INF and +INF
> + using the type's min and max values.
> +
> + So, the only sensible thing we can do for now is set the
> + resulting range to VR_VARYING. TODO, would having symbolic -INF
> + and +INF values be worth the trouble? */
I'm not sure, but the behavior you observe may have to do with the
fact that Ada semantics require that arithmetic expressions are
evaluated in the base range of the type, which is symmetric about zero
("excepting possibly an extra negative value"). It might be possible
to use the base range to implement -INF and +INF.
(Hopefully, the Ada maintainers feel now compelled to correct me. 8-)