Created attachment 14896 [details] Tarball with testcase and output If I install exactly the same version of Clang (3.7.0-RELEASE) on Mac OS X, FreeBSD and Linux, all targeting the same platform (x86_64-unknown-cloudabi) and build the same source file at different optimization levels, I get different results. This bug is similar in nature to bug 24734, but the root cause is different. My suspicion is that this is related to FPU rounding modes. Attached is a tarball that contains a C source file, foo.c, that is a reduced testcase based on libspeex's vbr.c. This testcase has been built on Mac OS X, FreeBSD and Linux, using different optimization modes. As you can see, anything above -O0 yields different results.
This bug still applies to r269024. Some more debugging has revealed that this is due to log() being called. If I compile the code with -fno-builtin or change the calls to log() to, say, banana(), the generated output becomes identical again.