summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2018-06-21 11:47:10 +0200
committerAnatol Belski <ab@php.net>2018-06-21 11:50:48 +0200
commitf87cc89f4d524c63889168b20459c899e809c97f (patch)
tree9fcb3a37c0d06988c42f1688ff4412c476198c6b
parent4bd6be8a5fdac7bf3795340e16cf572c0ae7c07f (diff)
downloadphp-git-f87cc89f4d524c63889168b20459c899e809c97f.tar.gz
Gereralize VA macro expansion mechanism
Avoids code duplication and makes in usable elsewhere.
-rw-r--r--Zend/zend_ast.h23
-rw-r--r--Zend/zend_portability.h7
2 files changed, 11 insertions, 19 deletions
diff --git a/Zend/zend_ast.h b/Zend/zend_ast.h
index c5e4a17474..d9640a70cd 100644
--- a/Zend/zend_ast.h
+++ b/Zend/zend_ast.h
@@ -204,27 +204,12 @@ ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_zval_from_long(zend_long lval)
ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_constant(zend_string *name, zend_ast_attr attr);
#if ZEND_AST_SPEC
-# ifdef ZEND_WIN32
-# define ZEND_AST_EXPAND_VA(a) a
-# endif
-
-# ifdef ZEND_WIN32
-# define ZEND_AST_SPEC_CALL(name, ...) \
- ZEND_AST_EXPAND_VA(ZEND_AST_SPEC_CALL_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
-# else
-# define ZEND_AST_SPEC_CALL(name, ...) \
- ZEND_AST_SPEC_CALL_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__)
-# endif
+# define ZEND_AST_SPEC_CALL(name, ...) \
+ ZEND_EXPAND_VA(ZEND_AST_SPEC_CALL_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
# define ZEND_AST_SPEC_CALL_(name, _, _4, _3, _2, _1, suffix, ...) \
name ## suffix
-
-# ifdef ZEND_WIN32
-# define ZEND_AST_SPEC_CALL_EX(name, ...) \
- ZEND_AST_EXPAND_VA(ZEND_AST_SPEC_CALL_EX_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
-# else
-# define ZEND_AST_SPEC_CALL_EX(name, ...) \
- ZEND_AST_SPEC_CALL_EX_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__)
-# endif
+# define ZEND_AST_SPEC_CALL_EX(name, ...) \
+ ZEND_EXPAND_VA(ZEND_AST_SPEC_CALL_EX_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
# define ZEND_AST_SPEC_CALL_EX_(name, _, _5, _4, _3, _2, _1, suffix, ...) \
name ## suffix
diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h
index 8f0eb9cda9..70f13c300f 100644
--- a/Zend/zend_portability.h
+++ b/Zend/zend_portability.h
@@ -638,6 +638,13 @@ static zend_always_inline double _zend_get_nan(void) /* {{{ */
#define ZEND_SLIDE_TO_ALIGNED(alignment, ptr) (((zend_uintptr_t)(ptr) + ((alignment)-1)) & ~((alignment)-1))
#define ZEND_SLIDE_TO_ALIGNED16(ptr) ZEND_SLIDE_TO_ALIGNED(Z_UL(16), ptr)
+#ifdef ZEND_WIN32
+# define _ZEND_EXPAND_VA(a) a
+# define ZEND_EXPAND_VA(code) _ZEND_EXPAND_VA(code)
+#else
+# define ZEND_EXPAND_VA(code) code
+#endif
+
#endif /* ZEND_PORTABILITY_H */
/*