summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <abies@php.net>2004-04-03 10:42:42 +0000
committerArd Biesheuvel <abies@php.net>2004-04-03 10:42:42 +0000
commit53671580462be039edf4a68729b1babb43c25b21 (patch)
tree4bdbf4c59a336c0e81fa50433b16c244261cfcd8
parent53b4597fca9f9f41b597d3b4a0114669b41831d6 (diff)
downloadphp-git-53671580462be039edf4a68729b1babb43c25b21.tar.gz
MFB: more elaborate HUGE_VAL test
-rw-r--r--ext/standard/config.m413
1 files changed, 10 insertions, 3 deletions
diff --git a/ext/standard/config.m4 b/ext/standard/config.m4
index 7d4f39f2a9..3aa706a4b6 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 + -HUGEVAL == NAN, ac_cv_huge_val_nan,[
AC_TRY_RUN([
#include <math.h>
#include <stdlib.h>
@@ -413,9 +413,16 @@ AC_CACHE_CHECK(whether HUGE_VAL + -HUGEVAL = NAN, ac_cv_huge_val_nan,[
#define zend_isnan(a) 0
#endif
+double hv(int i)
+{
+ /* avoid inlining */
+ if (i) return hv(i-1);
+ else return HUGE_VAL;
+}
+
int main(int argc, char** argv)
{
- return zend_isinf(HUGE_VAL) && zend_isnan(HUGE_VAL + -HUGE_VAL) ? 0 : 1;
+ return zend_isinf(hv(3)) && zend_isnan(HUGE_VAL + -HUGE_VAL) ? 0 : 1;
}
],[
ac_cv_huge_val_nan=yes
@@ -427,7 +434,7 @@ int main(int argc, char** argv)
])
dnl This is the most probable fallback so we assume yes in case of cross compile.
if test "$ac_cv_huge_val_nan" = "yes"; then
- AC_DEFINE([HAVE_HUGE_VAL_NAN], 1, [whether HUGE_VAL + -HUGEVAL = NAN])
+ AC_DEFINE([HAVE_HUGE_VAL_NAN], 1, [whether HUGE_VAL + -HUGEVAL == NAN])
fi
PHP_CHECK_I18N_FUNCS