This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix Ada bootstrap on i386


* 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-)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]