Port new float-scaling code to Solaris

* src/floatfns.c (double_integer_scale): Simplify, so that the
function works when (FP_ILOGBNAN == INT_MAX && FP_ILOGB0 == INT_MIN),
as on Solaris.
This commit is contained in:
Paul Eggert 2019-11-15 18:40:45 -08:00
parent c793395cca
commit 5ed66f10ec

View file

@ -350,10 +350,7 @@ double_integer_scale (double d)
return (DBL_MIN_EXP - 1 <= exponent && exponent < INT_MAX
? DBL_MANT_DIG - 1 - exponent
: (DBL_MANT_DIG - DBL_MIN_EXP
+ ((exponent == FP_ILOGBNAN
&& (FP_ILOGBNAN != FP_ILOGB0 || isnan (d)))
? 2
: exponent == INT_MAX)));
+ (isnan (d) ? 2 : exponent == INT_MAX)));
}
/* Convert the Lisp number N to an integer and return a pointer to the