xform: avoid problems with __signbitf128
Closes #1962 and uses the suggested patch there, among other changes.
This commit is contained in:
parent
efb9a919fc
commit
050cdb5983
|
@ -904,7 +904,7 @@
|
|||
|
||||
strlen cos cosl sin sinl exp expl pow powl log logl sqrt sqrtl atan2 atan2l frexp
|
||||
isnan isinf fpclass signbit _signbit _fpclass __fpclassify __fpclassifyf __fpclassifyl
|
||||
_isnan __isfinited __isnanl __isnan __signbit __signbitf __signbitd __signbitl
|
||||
_isnan __isfinited __isnanl __isnan __signbit __signbitf __signbitd __signbitl __signbitf128
|
||||
__isinff __isinfl isnanf isinff __isinfd __isnanf __isnand __isinf __isinff128
|
||||
__inline_isnanl __inline_isnan __inline_signbit __inline_signbitf __inline_signbitd __inline_signbitl
|
||||
__builtin_popcount __builtin_clz __builtin_isnan __builtin_isinf __builtin_signbit
|
||||
|
|
|
@ -1796,6 +1796,7 @@ double scheme_real_to_double(Scheme_Object *r)
|
|||
}
|
||||
|
||||
XFORM_NONGCING static MZ_INLINE int minus_zero_p(double d)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
#ifdef MZ_IS_NEG_ZERO
|
||||
return MZ_IS_NEG_ZERO(d);
|
||||
|
@ -1809,7 +1810,9 @@ int scheme_minus_zero_p(double d)
|
|||
return minus_zero_p(d);
|
||||
}
|
||||
|
||||
static int rational_dbl_p(double f) {
|
||||
XFORM_NONGCING static int rational_dbl_p(double f)
|
||||
XFORM_SKIP_PROC
|
||||
{
|
||||
return !(MZ_IS_NAN(f)
|
||||
|| MZ_IS_INFINITY(f));
|
||||
}
|
||||
|
@ -1955,7 +1958,7 @@ real_p(int argc, Scheme_Object *argv[])
|
|||
return (SCHEME_REALP(o) ? scheme_true : scheme_false);
|
||||
}
|
||||
|
||||
static int is_rational(const Scheme_Object *o)
|
||||
XFORM_NONGCING static int is_rational(const Scheme_Object *o)
|
||||
{
|
||||
if (SCHEME_FLOATP(o))
|
||||
return rational_dbl_p(SCHEME_FLOAT_VAL(o));
|
||||
|
|
Loading…
Reference in New Issue
Block a user