xref: /PHP-8.1/ext/opcache/tests/opt/sccp_008.phpt (revision e9f783fc)
1--TEST--
2SCCP 008: Conditional Constant Propagation of non-escaping array elements
3--INI--
4opcache.enable=1
5opcache.enable_cli=1
6opcache.optimization_level=-1
7opcache.opt_debug_level=0x20000
8opcache.preload=
9--EXTENSIONS--
10opcache
11--FILE--
12<?php
13function foo(int $x) {
14    if ($x) {
15        $a = [0,1];
16    } else {
17        $a = [0,2];
18    }
19    echo $a[1];
20}
21?>
22--EXPECTF--
23$_main:
24     ; (lines=1, args=0, vars=0, tmps=0)
25     ; (after optimizer)
26     ; %ssccp_008.php:1-11
270000 RETURN int(1)
28
29foo:
30     ; (lines=8, args=1, vars=2, tmps=1)
31     ; (after optimizer)
32     ; %ssccp_008.php:2-9
330000 CV0($x) = RECV 1
340001 JMPZ CV0($x) 0004
350002 CV1($a) = QM_ASSIGN array(...)
360003 JMP 0005
370004 CV1($a) = QM_ASSIGN array(...)
380005 T2 = FETCH_DIM_R CV1($a) int(1)
390006 ECHO T2
400007 RETURN null
41