This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/37390] wrong-code on i486-linux-gnu with -O[12], -O0 works
- From: "brian at dessent dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Sep 2008 20:31:46 -0000
- Subject: [Bug target/37390] wrong-code on i486-linux-gnu with -O[12], -O0 works
- References: <bug-37390-11764@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #9 from brian at dessent dot net 2008-09-06 20:31 -------
Subject: Re: wrong-code on i486-linux-gnu with -O[12], -O0
works
pinskia at gmail dot com wrote:
> Because on x86 gnu/Linux, the precision is set to 80bits rather than
> 64bit like it is on windows.
That is only true of the Microsoft toolchain. Both Cygwin and MinGW set
the precision to 80 bits. (On MinGW, you can use the default Microsoft
setting by including CRT_FP8.o explicitly on the link command.)
I think the observed difference is simply because this is in the
undefined behavior category: it depends on details of how the register
allocator happened to decide to operate, whether it spilled the values
to memory.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37390