summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorJulien Pauli <jpauli@php.net>2015-07-06 15:46:48 +0200
committerJulien Pauli <jpauli@php.net>2015-07-07 14:56:05 +0200
commitc22da81b71abe8c41a94fdea4e95a2bca8ec926d (patch)
tree2922ee28cf012cd34c7f82de4c0faa6a095494b0 /Zend/zend_compile.c
parent022068342b5da0b97be1b5f3bb7b018263bd6437 (diff)
downloadphp-git-c22da81b71abe8c41a94fdea4e95a2bca8ec926d.tar.gz
Fixed double ZEND_TICKS opcode generation for declare()
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index d2f9fbc8d7..278ac4e02e 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -6827,6 +6827,11 @@ void zend_do_extended_fcall_end(TSRMLS_D) /* {{{ */
void zend_do_ticks(TSRMLS_D) /* {{{ */
{
+ /* This prevents a double TICK generated by the parser statement of "declare()" */
+ if (CG(active_op_array)->last && CG(active_op_array)->opcodes[CG(active_op_array)->last - 1].opcode == ZEND_TICKS) {
+ return;
+ }
+
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_TICKS;