From b0d27f9e857021edfaf5d373c5a15dedd262755e Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Mon, 10 May 2004 07:23:38 +0000 Subject: [PATCH] - Decouple NAN and INF --- ext/standard/basic_functions.c | 6 +++--- ext/standard/config.m4 | 26 ++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 3106022f3d..85ebe92bbd 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -957,7 +957,7 @@ static void basic_globals_dtor(php_basic_globals *basic_globals_p TSRMLS_DC) #define PHP_DOUBLE_INFINITY_HIGH 0x7ff00000 #define PHP_DOUBLE_QUIET_NAN_HIGH 0xfff80000 -PHPAPI double php_get_nan() +PHPAPI double php_get_nan(void) { #if HAVE_HUGE_VAL_NAN return HUGE_VAL + -HUGE_VAL; @@ -973,9 +973,9 @@ PHPAPI double php_get_nan() #endif } -PHPAPI double php_get_inf() +PHPAPI double php_get_inf(void) { -#if HAVE_HUGE_VAL_NAN +#if HAVE_HUGE_VAL_INF return HUGE_VAL; #elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha) double val = 0.0; diff --git a/ext/standard/config.m4 b/ext/standard/config.m4 index 82b5b0b2bb..7a8689d897 100644 --- a/ext/standard/config.m4 +++ b/ext/standard/config.m4 @@ -389,7 +389,7 @@ if test "$ac_cv_atof_accept_inf" = "yes"; then AC_DEFINE([HAVE_ATOF_ACCEPTS_INF], 1, [whether atof() accepts INF]) fi -AC_CACHE_CHECK(whether HUGE_VAL + -HUGEVAL == NAN, ac_cv_huge_val_nan,[ +AC_CACHE_CHECK(whether HUGE_VAL == INF, ac_cv_huge_val_inf,[ AC_TRY_RUN([ #include #include @@ -405,6 +405,28 @@ AC_CACHE_CHECK(whether HUGE_VAL + -HUGEVAL == NAN, ac_cv_huge_val_nan,[ #define zend_isinf(a) 0 #endif +int main(int argc, char** argv) +{ + return zend_isinf(HUGE_VAL) ? 0 : 1; +} + ],[ + ac_cv_huge_val_inf=yes + ],[ + ac_cv_huge_val_inf=no + ],[ + ac_cv_huge_val_inf=yes + ]) +]) +dnl This is the most probable fallback so we assume yes in case of cross compile. +if test "$ac_cv_huge_val_inf" = "yes"; then + AC_DEFINE([HAVE_HUGE_VAL_INF], 1, [whether HUGE_VAL == INF]) +fi + +AC_CACHE_CHECK(whether HUGE_VAL + -HUGEVAL == NAN, ac_cv_huge_val_nan,[ + AC_TRY_RUN([ +#include +#include + #ifdef HAVE_ISNAN #define zend_isnan(a) isnan(a) #elif defined(HAVE_FPCLASS) @@ -419,7 +441,7 @@ int main(int argc, char** argv) /* prevent bug #27830 */ return 1; #else - return zend_isinf(HUGE_VAL) && zend_isnan(HUGE_VAL + -HUGE_VAL) ? 0 : 1; + return zend_isnan(HUGE_VAL + -HUGE_VAL) ? 0 : 1; #endif } ],[ -- 2.40.0