From 56a5d0bd9179972d0675f8f772fc5423d9de00d0 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 3 Apr 2019 03:09:03 +0300 Subject: Fixed CFG construction for SWITCH opcodes --- ext/opcache/Optimizer/zend_cfg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/opcache/Optimizer/zend_cfg.c b/ext/opcache/Optimizer/zend_cfg.c index e3f60452ef..a74d55e82e 100644 --- a/ext/opcache/Optimizer/zend_cfg.c +++ b/ext/opcache/Optimizer/zend_cfg.c @@ -74,8 +74,8 @@ static void zend_mark_reachable(zend_op *opcodes, zend_cfg *cfg, zend_basic_bloc } } else { ZEND_ASSERT(opcode == ZEND_SWITCH_LONG || opcode == ZEND_SWITCH_STRING); - if (i == b->successors_count) { - succ->flags |= ZEND_BB_FOLLOW; + if (i == b->successors_count - 1) { + succ->flags |= ZEND_BB_FOLLOW | ZEND_BB_TARGET; } else { succ->flags |= ZEND_BB_TARGET; } -- cgit v1.2.1