summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend-parser.y4
-rw-r--r--Zend/zend_compile.c2
-rw-r--r--Zend/zend_opcode.c9
3 files changed, 7 insertions, 8 deletions
diff --git a/Zend/zend-parser.y b/Zend/zend-parser.y
index 36972a3894..cff30e5fcc 100644
--- a/Zend/zend-parser.y
+++ b/Zend/zend-parser.y
@@ -497,8 +497,8 @@ function_call:
exit_expr:
- /* empty */ { $$.op_type = IS_UNUSED; }
- | '(' ')' { $$.op_type = IS_UNUSED; }
+ /* empty */ { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
+ | '(' ')' { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
| '(' expr ')' { $$ = $2; }
;
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 8560f0fad2..24ab94cd37 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1183,6 +1183,8 @@ void do_early_binding(CLS_D)
zval_dtor(&opline->op1.u.constant);
zval_dtor(&opline->op2.u.constant);
opline->opcode = ZEND_NOP;
+ memset(&opline->op1, 0, sizeof(znode));
+ memset(&opline->op2, 0, sizeof(znode));
SET_UNUSED(opline->op1);
SET_UNUSED(opline->op2);
}
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 4bb112b63a..db5ef3be4f 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -190,12 +190,9 @@ void init_op(zend_op *op CLS_DC)
op->filename = zend_get_compiled_filename(CLS_C);
op->result.op_type = IS_UNUSED;
op->extended_value = 0;
- op->op1.u.EA.var = 0;
- op->op1.u.EA.type = 0;
- op->op2.u.EA.var = 0;
- op->op2.u.EA.type = 0;
- op->result.u.EA.var = 0;
- op->result.u.EA.type = 0;
+ memset(&op->op1, 0, sizeof(znode));
+ memset(&op->op2, 0, sizeof(znode));
+ memset(&op->result, 0, sizeof(znode));
}
zend_op *get_next_op(zend_op_array *op_array CLS_DC)