With -Dquadmath C++ builds, the calls to log10() and ldexp() would
cause ambiguous overloaded function errors, since all of log10(float),
log10(double) and log10(long double) were canidates for a
log10(__float128) call. Similarly for ldexp().
signbit() had a different problem, two of the tests in ext/POSIX/t/math.t
failed with the default signbit() macro, presumably because the
__float128 was being converted to a long double, since the macro in
math.h didn't special case for __float128.
#endif
break;
case 17:
- RETVAL = log10(x); /* C89 math */
+ RETVAL = Perl_log10(x); /* C89 math */
break;
case 18:
#ifdef c99_log1p
ldexp(x,exp)
NV x
int exp
+ CODE:
+ RETVAL = Perl_ldexp(x, exp);
+ OUTPUT:
+ RETVAL
void
modf(x)
our ($AUTOLOAD, %SIGRT);
-our $VERSION = '1.84';
+our $VERSION = '1.85';
require XSLoader;
# define Perl_fmod fmodq
# define Perl_log logq
# define Perl_log10 log10q
+# define Perl_signbit signbitq
# define Perl_pow powq
# define Perl_sin sinq
# define Perl_sinh sinhq
#define U_L(what) U_32(what)
#ifdef HAS_SIGNBIT
-# define Perl_signbit signbit
+# ifndef Perl_signbit
+# define Perl_signbit signbit
+# endif
#endif
/* These do not care about the fractional part, only about the range. */