mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Workaround VA macro expansion difference with VC++
This commit is contained in:
parent
4bbf200b4e
commit
e659fcd89e
1 changed files with 17 additions and 2 deletions
|
@ -204,12 +204,27 @@ 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
|
||||
# define ZEND_AST_SPEC_CALL(name, ...) \
|
||||
# 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, _, _4, _3, _2, _1, suffix, ...) \
|
||||
name ## suffix
|
||||
# define ZEND_AST_SPEC_CALL_EX(name, ...) \
|
||||
|
||||
# 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, _, _5, _4, _3, _2, _1, suffix, ...) \
|
||||
name ## suffix
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue