diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-07-09 23:20:50 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-07-09 23:20:50 +0300 |
commit | 8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d (patch) | |
tree | 27b4b3a7e25b4f8785ff5205ea7c3c91ebe16330 /Zend/zend_opcode.c | |
parent | 788c4c852d0b0523eb918039e4ac3247f5c8a6d0 (diff) | |
download | php-git-8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d.tar.gz |
Fixed exception catching on break/continue
Fixed "finaly" handling on exception in "return" statement
Diffstat (limited to 'Zend/zend_opcode.c')
-rw-r--r-- | Zend/zend_opcode.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 6a89a54712..5fe5ae7f33 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -994,8 +994,8 @@ static zend_always_inline uint32_t *generate_var_liveliness_info_ex(zend_op_arra && opline->opcode != ZEND_FE_FETCH_RW /* the following opcodes are parts of "return" statement */ && opline->opcode != ZEND_VERIFY_RETURN_TYPE - && (opline->opcode != ZEND_FREE || !(opline->extended_value & ZEND_FREE_ON_JUMP)) - && (opline->opcode != ZEND_FE_FREE || !(opline->extended_value & ZEND_FREE_ON_JUMP)) + && (opline->opcode != ZEND_FREE || !(opline->extended_value & (ZEND_FREE_ON_RETURN|ZEND_FREE_ON_BREAK))) + && (opline->opcode != ZEND_FE_FREE || !(opline->extended_value & (ZEND_FREE_ON_RETURN|ZEND_FREE_ON_BREAK))) ) { op_live_total += liveliness_kill_var(op_array, opline, var, Tstart, opTs); } |