Instead of make update_op1_by_const supports FETCH_LIST(CASE), I think
disable it is more safe for 7.1
. Fixed bug #74439 (wrong reflection for Locale methods). (villfa)
- Opcache:
+ . Fixed bug #74456 (Segmentation error while running a script in CLI mode).
+ (Laruence)
. Fixed bug #74431 (foreach infinite loop). (Nikita)
. Fixed bug #74442 (Opcached version produces a nested array). (Nikita)
COPY_NODE(opline->op1, src->op1);
VAR_SOURCE(op1) = NULL;
MAKE_NOP(src);
- } else {
+ } else if (opline->opcode != ZEND_FETCH_LIST && opline->opcode != ZEND_CASE) {
zval c = ZEND_OP1_LITERAL(src);
zval_copy_ctor(&c);
if (zend_optimizer_update_op1_const(op_array, opline, &c)) {
--- /dev/null
+--TEST--
+Bug #74456 (Segmentation error while running a script in CLI mode)
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+
+function small_numbers() {
+ return [0,1,2];
+}
+
+list ($zero, $one, $two) = small_numbers();
+
+var_dump($zero, $one, $two);
+?>
+--EXPECT--
+int(0)
+int(1)
+int(2)