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