[Bug ada/46490] For four major i386 BSDs, GNAT fails FP to static integer conversion with -O2,-O3 optimization

gnugcc at marino dot st gcc-bugzilla@gcc.gnu.org
Tue Nov 16 10:49:00 GMT 2010


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

--- Comment #5 from John Marino <gnugcc at marino dot st> 2010-11-16 10:35:54 UTC ---
Hi Eric,
Thanks for you comment, but I don't think that is it for several reasons:

1) I am aware of both those quirks, and my codebase is patched with both of
those suggestions.

2) There's no problem with stack checking on FreeBSD i386.  There are no
failures whatsoever on either ACATS or gnat.dejagnu except for this particular
case of c460007.  NetBSD stack-checking doesn't work, but that's outside this
bug report.

3) The test passes with optimization level 0 or 1.  It fails with O2 and O3
settings.

4) There are no other rounding issues.  If TARGET_96_ROUND_53_LONG_DOUBLE is
not set correctly, multiple tests fail.

5) It's occurring identically on all four i386 platforms which are pretty
divergent.


This looks like a problem in the optimization stage.
The two test cases I provided are interesting as you can see the test will pass
if the EQUAL function is nested inside the main procedure rather than being
called as a separate package (also pointing to a problem in optimization I
would think.)

This warrants a closer look, it's not a configuration thing.
Thanks,
John



More information about the Gcc-bugs mailing list