http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48979
--- Comment #11 from Thomas Henlich <thenlich at users dot sourceforge.net> 2011-05-13 09:13:01 UTC --- Mind the change between F2003 and F2008: F2003: FRACTION(+Inf) = +Inf FRACTION(-Inf) = -Inf F2008: FRACTION(+Inf) = NaN FRACTION(-Inf) = NaN And I think what "If X is an IEEE NaN, the result is that NaN." means is: IF ISNAN(X) FRACTION(X) = X which is different from IF ISNAN(X) FRACTION(X) = Z'7FC00000'