http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52413
--- Comment #13 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- > Why involve I/O in your test, and not just test the value like that: > > if (fraction(-2.0) /= -0.5) call abort() > > and, slightly more complicated to handle negative zero, checking both > value and sign: > > if (fraction(-0.0) /= 0.0) call abort > if (sign(1.0, fraction(-0.0)) /= -1.0) call abort No good reason, I just did not think of a direct comparison. I'll do the change later. Thanks for the tips.