summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorJulien Pauli <jpauli@php.net>2015-07-07 15:03:58 +0200
committerJulien Pauli <jpauli@php.net>2015-07-07 15:03:58 +0200
commitdfb0c6363fd1a4bd75849e4637d7fd31dfc42857 (patch)
tree262836bef90c4d9a25e1c318b0b8d4e21b091c38 /Zend/zend_compile.c
parent404dc93d35f7061fc4b1b41ad6cb0721b9b52bcc (diff)
parentc22da81b71abe8c41a94fdea4e95a2bca8ec926d (diff)
downloadphp-git-dfb0c6363fd1a4bd75849e4637d7fd31dfc42857.tar.gz
Merge branch 'PHP-5.6'
* PHP-5.6: Fixed double ZEND_TICKS opcode generation for declare() Conflicts: Zend/zend_compile.c
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 e655e8480c..3ae9567a94 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1881,6 +1881,11 @@ static zend_op *zend_emit_op_tmp(znode *result, zend_uchar opcode, znode *op1, z
static void zend_emit_tick(void) /* {{{ */
{
+ /* 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));
opline->opcode = ZEND_TICKS;