Print this page

        

*** 49,69 **** /* if y is nan, replace it by x */ if (y != y) y = x; ! /* if x is less than y or x and y are unordered, replace x by y */ ! #if defined(COMPARISON_MACRO_BUG) ! if (x != x || x < y) ! #else ! if (!isgreaterequal(x, y)) ! #endif x = y; /* ! * now x and y are either both NaN or both numeric; clear the ! * sign of the result if either x or y has its sign clear */ xx.ld = x; yy.ld = y; #if defined(__sparc) s = ~(xx.i[0] & yy.i[0]) & 0x80000000; --- 49,68 ---- /* if y is nan, replace it by x */ if (y != y) y = x; ! /* if x is nan, replace it by y */ ! if (x != x) ! x = y; ! ! /* At this point, x and y are either both numeric, or both NaN */ ! if (!isnan(x) && !isgreaterequal(x, y)) x = y; /* ! * clear the sign of the result if either x or y has its sign clear */ xx.ld = x; yy.ld = y; #if defined(__sparc) s = ~(xx.i[0] & yy.i[0]) & 0x80000000;