diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-07-09 20:47:25 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-07-09 20:47:25 +0300 |
commit | 17c5315bdf8f8087979aeb55f6d3a512ba197cf5 (patch) | |
tree | 7351d65a28af32587e436e73d25e8d87f3812b6c /Zend/zend_opcode.c | |
parent | d91aad5966f01259f0e1a431a754d917807761b5 (diff) | |
download | php-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.c | 3 |
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)) ) { |