summaryrefslogtreecommitdiff
path: root/Zend/zend_opcode.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-07-09 20:47:25 +0300
committerDmitry Stogov <dmitry@zend.com>2015-07-09 20:47:25 +0300
commit17c5315bdf8f8087979aeb55f6d3a512ba197cf5 (patch)
tree7351d65a28af32587e436e73d25e8d87f3812b6c /Zend/zend_opcode.c
parentd91aad5966f01259f0e1a431a754d917807761b5 (diff)
downloadphp-git-17c5315bdf8f8087979aeb55f6d3a512ba197cf5.tar.gz
Fixed exception habdling on "return" statement.
Such exceptions shouldn't be caught in the same function.
Diffstat (limited to 'Zend/zend_opcode.c')
-rw-r--r--Zend/zend_opcode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 64ba6562ff..e84edd54b9 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -992,7 +992,8 @@ static zend_always_inline uint32_t *generate_var_liveliness_info_ex(zend_op_arra
&& opline->opcode != ZEND_CASE
&& opline->opcode != ZEND_FE_FETCH_R
&& opline->opcode != ZEND_FE_FETCH_RW
- /* the following opcodes are not the "final" */
+ /* the following opcodes are parts of "return" statement */
+ && opline->opcode != ZEND_VERIFY_RETURN_TYPE
&& (opline->opcode != ZEND_FREE || !(opline->extended_value & ZEND_FREE_ON_RETURN))
&& (opline->opcode != ZEND_FE_FREE || !(opline->extended_value & ZEND_FREE_ON_RETURN))
) {