Skip to content

Commit

Permalink
Move __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defs earlier
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sgolemon committed Aug 20, 2015
1 parent 5ece3ec commit a3eed5f
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions main/php_stdint.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 <sys/types.h>
#endif
Expand Down

0 comments on commit a3eed5f

Please sign in to comment.