Index: lib/builtins/fp_lib.h =================================================================== --- lib/builtins/fp_lib.h +++ lib/builtins/fp_lib.h @@ -271,8 +271,18 @@ // 1) +/- inf returns +inf; NaN returns NaN // 2) 0.0 returns -inf if (exp == maxExponent) { - if (((rep & signBit) == 0) || (x != x)) { - return x; // NaN or +inf: return x + if (x != x) { + // NaN +#if defined(__APPLE__) && defined(__i386__) + // Darwin i386 libm when given a NaN with a raised + // sign bit returns a NaN without a sign bit. + if (rep & signBit) { + return fromRep((~signBit) & rep); + } +#endif + return x; + } else if ((rep & signBit) == 0) { + return x; // +inf: return x } else { return -x; // -inf: return -x }