diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2017-02-08 00:54:27 +0100 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2017-02-08 00:54:27 +0100 |
| commit | 1b4031380482e0a22a30c3f5d76d4a5de61a9453 (patch) | |
| tree | a3fd8a2f2602057a45b69e5fa7c64e1ae9c13e60 | |
| parent | ed4216c955516a48285e22eb999c0a641d4a1d63 (diff) | |
| parent | bb9adc4c52a5ecc30ab4fb2831b02ab2303a8280 (diff) | |
| download | php-git-1b4031380482e0a22a30c3f5d76d4a5de61a9453.tar.gz | |
Merge branch 'PHP-7.1'
| -rw-r--r-- | Zend/Zend.m4 | 2 | ||||
| -rw-r--r-- | Zend/configure.ac | 8 | ||||
| -rw-r--r-- | configure.ac | 8 | ||||
| -rw-r--r-- | ext/standard/config.m4 | 2 | ||||
| -rw-r--r-- | ext/standard/tests/math/bug74039.phpt | 28 |
5 files changed, 38 insertions, 10 deletions
diff --git a/Zend/Zend.m4 b/Zend/Zend.m4 index a1c1d3b07b..7a01c0b036 100644 --- a/Zend/Zend.m4 +++ b/Zend/Zend.m4 @@ -100,7 +100,7 @@ AC_FUNC_ALLOCA AC_CHECK_FUNCS(memcpy strdup getpid kill strtod strtol finite fpclass sigsetjmp) AC_ZEND_BROKEN_SPRINTF -AC_CHECK_FUNCS(finite isfinite isinf isnan) +AC_CHECK_DECLS([isfinite, isnan, isinf], [], [], [[#include <math.h>]]) ZEND_FP_EXCEPT diff --git a/Zend/configure.ac b/Zend/configure.ac index 5dfdccac6d..3cda933a59 100644 --- a/Zend/configure.ac +++ b/Zend/configure.ac @@ -63,7 +63,7 @@ int zend_sprintf(char *buffer, const char *format, ...); #include <math.h> #ifndef zend_isnan -#ifdef HAVE_ISNAN +#ifdef HAVE_DECL_ISNAN #define zend_isnan(a) isnan(a) #elif defined(HAVE_FPCLASS) #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN)) @@ -72,18 +72,18 @@ int zend_sprintf(char *buffer, const char *format, ...); #endif #endif -#ifdef HAVE_ISINF +#ifdef HAVE_DECL_ISINF #define zend_isinf(a) isinf(a) #elif defined(INFINITY) /* Might not work, but is required by ISO C99 */ -#define zend_isinf(a) (((a)==INFINITY)?1:0) +#define zend_isinf(a) (((a)==INFINITY || (a)==-INFINITY)?1:0) #elif defined(HAVE_FPCLASS) #define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF)) #else #define zend_isinf(a) 0 #endif -#if defined(HAVE_ISFINITE) || defined(isfinite) +#if defined(HAVE_DECL_ISFINITE) #define zend_finite(a) isfinite(a) #elif defined(HAVE_FINITE) #define zend_finite(a) finite(a) diff --git a/configure.ac b/configure.ac index 5584a4f43a..593585629e 100644 --- a/configure.ac +++ b/configure.ac @@ -68,7 +68,7 @@ int zend_sprintf(char *buffer, const char *format, ...); #include <math.h> #ifndef zend_isnan -#ifdef HAVE_ISNAN +#ifdef HAVE_DECL_ISNAN #define zend_isnan(a) isnan(a) #elif defined(HAVE_FPCLASS) #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN)) @@ -77,18 +77,18 @@ int zend_sprintf(char *buffer, const char *format, ...); #endif #endif -#ifdef HAVE_ISINF +#ifdef HAVE_DECL_ISINF #define zend_isinf(a) isinf(a) #elif defined(INFINITY) /* Might not work, but is required by ISO C99 */ -#define zend_isinf(a) (((a)==INFINITY)?1:0) +#define zend_isinf(a) (((a)==INFINITY || (a)==-INFINITY)?1:0) #elif defined(HAVE_FPCLASS) #define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF)) #else #define zend_isinf(a) 0 #endif -#if defined(HAVE_ISFINITE) || defined(isfinite) +#if defined(HAVE_DECL_ISFINITE) #define zend_finite(a) isfinite(a) #elif defined(HAVE_FINITE) #define zend_finite(a) finite(a) diff --git a/ext/standard/config.m4 b/ext/standard/config.m4 index 52faa91cb5..284e74e967 100644 --- a/ext/standard/config.m4 +++ b/ext/standard/config.m4 @@ -288,7 +288,7 @@ dnl Check for available functions dnl dnl log2 could be used to improve the log function, however it requires C99. The check for log2 should be turned on, dnl as soon as we support C99. -AC_CHECK_FUNCS(getcwd getwd asinh acosh atanh log1p hypot glob strfmon nice fpclass isinf isnan mempcpy strpncpy) +AC_CHECK_FUNCS(getcwd getwd asinh acosh atanh log1p hypot glob strfmon nice fpclass mempcpy strpncpy) AC_FUNC_FNMATCH dnl diff --git a/ext/standard/tests/math/bug74039.phpt b/ext/standard/tests/math/bug74039.phpt new file mode 100644 index 0000000000..dd0e1fa260 --- /dev/null +++ b/ext/standard/tests/math/bug74039.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #74039: is_infinite(-INF) returns false +--FILE-- +<?php + +var_dump(is_finite(INF)); +var_dump(is_infinite(INF)); +var_dump(is_nan(INF)); + +var_dump(is_finite(-INF)); +var_dump(is_infinite(-INF)); +var_dump(is_nan(-INF)); + +var_dump(is_finite(NAN)); +var_dump(is_infinite(NAN)); +var_dump(is_nan(NAN)); + +?> +--EXPECT-- +bool(false) +bool(true) +bool(false) +bool(false) +bool(true) +bool(false) +bool(false) +bool(false) +bool(true) |
