]> granicus.if.org Git - php/commitdiff
Better check for __builtin_constant_p() availability
authorDmitry Stogov <dmitry@zend.com>
Thu, 25 Jun 2015 09:02:28 +0000 (12:02 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 25 Jun 2015 09:02:28 +0000 (12:02 +0300)
Zend/zend_alloc.h
Zend/zend_portability.h

index f76494e0d4cc417bc983a6daabe8f93340b81b46..6c12b4247da1a06138b2f86c992399ff2896dd50 100644 (file)
@@ -84,7 +84,7 @@ ZEND_API size_t ZEND_FASTCALL _zend_mem_block_size(void *ptr ZEND_FILE_LINE_DC Z
 #include "zend_alloc_sizes.h"
 
 /* _emalloc() & _efree() specialization */
-#if !ZEND_DEBUG && !defined(_WIN32)
+#if !ZEND_DEBUG && defined(HAVE_BUILTIN_CONSTANT_P)
 
 # define _ZEND_BIN_ALLOCATOR_DEF(_num, _size, _elements, _pages, x, y) \
        ZEND_API void* ZEND_FASTCALL _emalloc_  ## _size(void) ZEND_ATTRIBUTE_MALLOC;
index 57080ca7b719accce269c57e331c117ab07726ad..8c6989d03028a9eb6eaa0478863e85da430416c9 100644 (file)
@@ -246,6 +246,10 @@ char *alloca();
 # define HAVE_ATTRIBUTE_WEAK
 #endif
 
+#if ZEND_GCC_VERSION >= 3001 || __has_builtin(__builtin_constant_p)
+# define HAVE_BUILTIN_CONSTANT_P
+#endif
+
 #if ZEND_DEBUG
 # define zend_always_inline inline
 # define zend_never_inline