diff options
| author | Andi Gutmans <andi@php.net> | 1999-08-19 15:15:34 +0000 |
|---|---|---|
| committer | Andi Gutmans <andi@php.net> | 1999-08-19 15:15:34 +0000 |
| commit | e5fbf4414a1026aa14543eb64634c223e0431969 (patch) | |
| tree | 5bb515078d2509fec50ec6b54d55b3b1c1cae4f8 | |
| parent | 4747a40964c860f8f8e10d81faaea283d6ade5d4 (diff) | |
| download | php-git-e5fbf4414a1026aa14543eb64634c223e0431969.tar.gz | |
- Make sure expr_list and echo_list are either empty or comma seperated
expressions
| -rw-r--r-- | Zend/zend-parser.y | 9 | ||||
| -rw-r--r-- | Zend/zend_opcode.c | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/Zend/zend-parser.y b/Zend/zend-parser.y index 5b9bb2a60d..b37ddeebf2 100644 --- a/Zend/zend-parser.y +++ b/Zend/zend-parser.y @@ -348,9 +348,8 @@ class_variable_decleration: | T_VARIABLE '=' static_scalar { do_declare_property(&$1, &$3 CLS_CC); } ; - + echo_expr_list: - /* empty */ | echo_expr_list ',' expr { do_echo(&$3 CLS_CC); } | expr { do_echo(&$1 CLS_CC); } ; @@ -358,7 +357,11 @@ echo_expr_list: for_expr: /* empty */ { $$.op_type = IS_CONST; $$.u.constant.type = IS_BOOL; $$.u.constant.value.lval = 1; } - | for_expr ',' { do_free(&$1 CLS_CC); } expr { $$ = $4; } + | non_empty_for_expr { $$ = $1; } +; + +non_empty_for_expr: + non_empty_for_expr ',' { do_free(&$1 CLS_CC); } expr { $$ = $4; } | expr { $$ = $1; } ; diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index cc7b896127..0e0eddf698 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -215,6 +215,12 @@ zend_op *get_next_op(zend_op_array *op_array CLS_DC) next_op->filename = zend_get_compiled_filename(); next_op->result.op_type = IS_UNUSED; next_op->extended_value = 0; + next_op->op1.u.EA.var = 0; + next_op->op1.u.EA.type = 0; + next_op->op2.u.EA.var = 0; + next_op->op2.u.EA.type = 0; + next_op->result.u.EA.var = 0; + next_op->result.u.EA.type = 0; return next_op; } |
