------- Comment #1 from dominiq at lps dot ens dot fr 2009-05-08 14:55 ------- Why are you using a code in C for the tests? If I use the following as the main program
real res1, res2 call myfunc(1000.0,850.0,143.204,30.5280,8.2351,res1,res2) print *, res1, res1-res2 call myfunc2(103780.0,253.13005,231.676270,-16.904803,res1,res2) print *, res1, res1-res2 call myfunc3(1513.25,238.149994,-16.500040,3.2,0.0,9.806650,20.964399,7614.320313,-0.1065,res1,res2) print *, res1, res1-res2, spacing(res1) I get 310.40363 0.0000000 23223.025 0.0000000 142007.84 1.56250000E-02 1.56250000E-02 So the difference between the res1 and res2 is either 0 or one LSB. What did you expect? Tests on intel-darwin with or without -m64. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40070