]> granicus.if.org Git - php/commitdiff
Remove custom implementation for inifinity and NAN as we can now rely on C99
authorGeorge Peter Banyard <girgias@php.net>
Wed, 4 Dec 2019 12:13:06 +0000 (13:13 +0100)
committerGeorge Peter Banyard <girgias@php.net>
Wed, 4 Dec 2019 12:17:20 +0000 (13:17 +0100)
Those ZEND_* constant variant are now identical to their C counterpart, we may considering removing them in the future.

Zend/zend_portability.h

index dd518aebbb345e168acc06b10bc0dfd68cb4ad7e..546a66b9f5675a2ebc118fffdb7cef3dda441ad4 100644 (file)
@@ -438,49 +438,9 @@ char *alloca();
 #define ZEND_BIT_TEST(bits, bit) \
        (((bits)[(bit) / (sizeof((bits)[0])*8)] >> ((bit) & (sizeof((bits)[0])*8-1))) & 1)
 
-/* We always define a function, even if there's a macro or expression we could
- * alias, so that using it in contexts where we can't make function calls
- * won't fail to compile on some machines and not others.
- */
-static zend_always_inline double _zend_get_inf(void) /* {{{ */
-{
-#ifdef INFINITY
-       return INFINITY;
-#elif HAVE_HUGE_VAL_INF
-       return HUGE_VAL;
-#elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha)
-# define _zend_DOUBLE_INFINITY_HIGH       0x7ff00000
-       double val = 0.0;
-       ((uint32_t*)&val)[1] = _zend_DOUBLE_INFINITY_HIGH;
-       ((uint32_t*)&val)[0] = 0;
-       return val;
-#elif HAVE_ATOF_ACCEPTS_INF
-       return atof("INF");
-#else
-       return 1.0/0.0;
-#endif
-} /* }}} */
-#define ZEND_INFINITY (_zend_get_inf())
-
-static zend_always_inline double _zend_get_nan(void) /* {{{ */
-{
-#ifdef NAN
-       return NAN;
-#elif HAVE_HUGE_VAL_NAN
-       return HUGE_VAL + -HUGE_VAL;
-#elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha)
-# define _zend_DOUBLE_QUIET_NAN_HIGH      0xfff80000
-       double val = 0.0;
-       ((uint32_t*)&val)[1] = _zend_DOUBLE_QUIET_NAN_HIGH;
-       ((uint32_t*)&val)[0] = 0;
-       return val;
-#elif HAVE_ATOF_ACCEPTS_NAN
-       return atof("NAN");
-#else
-       return 0.0/0.0;
-#endif
-} /* }}} */
-#define ZEND_NAN (_zend_get_nan())
+#define ZEND_INFINITY INFINITY
+
+#define ZEND_NAN NAN
 
 #define ZEND_STRL(str)         (str), (sizeof(str)-1)
 #define ZEND_STRS(str)         (str), (sizeof(str))