From 5c42e46082a4dc35affbc9990c7da1b41827b259 Mon Sep 17 00:00:00 2001 From: Po-Chuan Hsieh Date: Fri, 4 Jul 2025 16:48:51 +0800 Subject: [PATCH] Fix build with PHP 8.5.0 alpha 1 PHP 8.5.0 alpha 1 removes unused ZEND_AST_EXIT [1] and turns clone() into a function [2]. Reference: https://github.com/php/php-src/commit/e421a44ac6ba1474d72df46b3331753671bbfe76 [1] https://github.com/php/php-src/commit/ca49a7bec2a0a8d77bfa4b6d375ca0ffa4edc5ee [2] --- ast_data.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ast_data.c b/ast_data.c index 3d19b2f..f38fc8d 100644 --- a/ast_data.c +++ b/ast_data.c @@ -42,8 +42,10 @@ const zend_ast_kind ast_kinds[] = { ZEND_AST_EMPTY, ZEND_AST_ISSET, ZEND_AST_SHELL_EXEC, +#if PHP_VERSION_ID < 80500 ZEND_AST_CLONE, ZEND_AST_EXIT, +#endif ZEND_AST_PRINT, ZEND_AST_INCLUDE_OR_EVAL, ZEND_AST_UNARY_OP, @@ -158,8 +160,10 @@ const char *ast_kind_to_name(zend_ast_kind kind) { case ZEND_AST_EMPTY: return "AST_EMPTY"; case ZEND_AST_ISSET: return "AST_ISSET"; case ZEND_AST_SHELL_EXEC: return "AST_SHELL_EXEC"; +#if PHP_VERSION_ID < 80500 case ZEND_AST_CLONE: return "AST_CLONE"; case ZEND_AST_EXIT: return "AST_EXIT"; +#endif case ZEND_AST_PRINT: return "AST_PRINT"; case ZEND_AST_INCLUDE_OR_EVAL: return "AST_INCLUDE_OR_EVAL"; case ZEND_AST_UNARY_OP: return "AST_UNARY_OP"; @@ -278,8 +282,10 @@ zend_string *ast_kind_child_name(zend_ast_kind kind, uint32_t child) { case ZEND_AST_CAST: case ZEND_AST_EMPTY: case ZEND_AST_SHELL_EXEC: +#if PHP_VERSION_ID < 80500 case ZEND_AST_CLONE: case ZEND_AST_EXIT: +#endif case ZEND_AST_PRINT: case ZEND_AST_INCLUDE_OR_EVAL: case ZEND_AST_UNARY_OP: @@ -618,8 +624,10 @@ void ast_register_kind_constants(INIT_FUNC_ARGS) { REGISTER_NS_LONG_CONSTANT("ast", "AST_EMPTY", ZEND_AST_EMPTY, CONST_CS | CONST_PERSISTENT); REGISTER_NS_LONG_CONSTANT("ast", "AST_ISSET", ZEND_AST_ISSET, CONST_CS | CONST_PERSISTENT); REGISTER_NS_LONG_CONSTANT("ast", "AST_SHELL_EXEC", ZEND_AST_SHELL_EXEC, CONST_CS | CONST_PERSISTENT); +#if PHP_VERSION_ID < 80500 REGISTER_NS_LONG_CONSTANT("ast", "AST_CLONE", ZEND_AST_CLONE, CONST_CS | CONST_PERSISTENT); REGISTER_NS_LONG_CONSTANT("ast", "AST_EXIT", ZEND_AST_EXIT, CONST_CS | CONST_PERSISTENT); +#endif REGISTER_NS_LONG_CONSTANT("ast", "AST_PRINT", ZEND_AST_PRINT, CONST_CS | CONST_PERSISTENT); REGISTER_NS_LONG_CONSTANT("ast", "AST_INCLUDE_OR_EVAL", ZEND_AST_INCLUDE_OR_EVAL, CONST_CS | CONST_PERSISTENT); REGISTER_NS_LONG_CONSTANT("ast", "AST_UNARY_OP", ZEND_AST_UNARY_OP, CONST_CS | CONST_PERSISTENT);