summaryrefslogtreecommitdiff
path: root/Zend/zend_opcode.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-07-09 23:20:50 +0300
committerDmitry Stogov <dmitry@zend.com>2015-07-09 23:20:50 +0300
commit8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d (patch)
tree27b4b3a7e25b4f8785ff5205ea7c3c91ebe16330 /Zend/zend_opcode.c
parent788c4c852d0b0523eb918039e4ac3247f5c8a6d0 (diff)
downloadphp-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.c4
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);
}