From a3eed5fbfe24368726906f425b15ce40b5fc36e0 Mon Sep 17 00:00:00 2001 From: Sara Golemon Date: Thu, 20 Aug 2015 14:40:08 -0700 Subject: [PATCH] Move __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defs earlier These defines should apply to windows as well, so move them out of the non-windows specific section and always define them for C++ compilations. --- main/php_stdint.h | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/main/php_stdint.h b/main/php_stdint.h index 29a81f20bc..71f7493a6a 100644 --- a/main/php_stdint.h +++ b/main/php_stdint.h @@ -19,6 +19,25 @@ #ifndef PHP_STDINT_H #define PHP_STDINT_H +/* C99 requires these for C++ to get the definitions + * of INT64_MAX and other macros used by Zend/zend_long.h + * C11 drops this requirement, so these effectively + * just backport that piece of behavior. + * + * These defines are placed here instead of + * with the include below, because sys/types + * and inttypes may include stdint themselves. + * And these definitions MUST come first. + */ +#ifdef __cplusplus +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS +# endif +# ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS +# endif +#endif + #if defined(_MSC_VER) /* Make sure the regular stdint.h wasn't included already and prevent it to be included afterwards. Though if some other library needs some stuff from @@ -42,21 +61,6 @@ #include "php_config.h" -#if HAVE_STDINT_H && defined(__cplusplus) - /* C99 requires these for C++ to get the definitions - * of INT64_MAX and other macros used by Zend/zend_long.h - * C11 drops this requirement, so these effectively - * just backport that piece of behavior. - * - * These defines are placed here instead of - * with the include below, because sys/types - * and inttypes may include stdint themselves. - * And these definitions MUST come first. - */ -# define __STDC_LIMIT_MACROS -# define __STDC_CONSTANT_MACROS -#endif - #if HAVE_SYS_TYPES_H # include #endif -- 2.40.0