[Bug target/14384] Invalid use of extra precision floating-point with -O0 optimization

wilson at specifixinc dot com gcc-bugzilla@gcc.gnu.org
Thu Mar 11 02:34:00 GMT 2004


------- Additional Comments From wilson at specifixinc dot com  2004-03-11 02:34 -------
Subject: Re:  Invalid use of extra precision floating-point
 with -O0 optimization

anz at obs-nice dot fr wrote:
> This even simpler code shows that gcc doesn't round an expression to (float)
> and
> keeps the extra precision even when an explicit cast is present, where it
> shouldn't be allowed to do so.

Yes.  As I explained a week ago, this is the excess-precision problem 
that has been known for over a decade.  There is no easy solution in the 
compiler because the design of the x86 FP register stack is flawed.  You 
either have to use a compiler workaround, or else you have to complain 
to Intel, or else you have to stop doing FP work on the x86 FP register 
stack.

Or you could try writing a fix for gcc yourself, but this will be hard, 
and will hurt performance, and will introduce double-rounding errors. 
So you may still have problems even with a fix.  That is why we haven't 
already done it.

Continuing to complain to us will only annoy us.  We can't fix it.


-- 


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



More information about the Gcc-bugs mailing list