From: Nikita Popov Date: Wed, 9 Jul 2014 22:04:27 +0000 (+0200) Subject: Expr stmts go through ast X-Git-Tag: POST_AST_MERGE^2~162 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=68777b72b25afd7373d4e2fe3e2980b8fb15da5d;p=php Expr stmts go through ast --- diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 294ce9b9a7..f4ac95e07f 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -7853,7 +7853,12 @@ void zend_compile_stmt(zend_ast *ast TSRMLS_DC) { case ZEND_AST_LABEL: zend_compile_label(ast TSRMLS_CC); break; - EMPTY_SWITCH_DEFAULT_CASE() + default: + { + znode result; + zend_compile_expr(&result, ast TSRMLS_CC); + zend_do_free(&result TSRMLS_CC); + } } if (Z_LVAL(CG(declarables).ticks) && !zend_is_unticked_stmt(ast)) { diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index f5ea217a1a..07039d2d6f 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -349,7 +349,7 @@ unticked_statement: | T_STATIC static_var_list ';' { AN($$); } | T_ECHO echo_expr_list ';' { $$.u.ast = $2.u.ast; } | T_INLINE_HTML { $$.u.ast = zend_ast_create_unary(ZEND_ECHO, AST_ZVAL(&$1)); } - | expr ';' { AC($1); zend_do_free(&$1 TSRMLS_CC); AN($$); } + | expr ';' { $$.u.ast = $1.u.ast; } | T_UNSET '(' unset_variables ')' ';' { $$.u.ast = $3.u.ast; } | T_FOREACH '(' variable T_AS { zend_do_foreach_begin(&$1, &$2, &$3, &$4, 1 TSRMLS_CC); }