xref: /PHP-8.0/ext/opcache/tests/opt/sccp_006.phpt (revision 0684b9fc)
1--TEST--
2SCCP 006: 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--SKIPIF--
10<?php require_once('skipif.inc'); ?>
11--FILE--
12<?php
13function foo(int $x) {
14    $a = ["a"=>1,"a"=>2,"a"=>$x];
15    echo $a["a"];
16}
17?>
18--EXPECTF--
19$_main:
20     ; (lines=1, args=0, vars=0, tmps=0)
21     ; (after optimizer)
22     ; %ssccp_006.php:1-7
230000 RETURN int(1)
24
25foo:
26     ; (lines=8, args=1, vars=2, tmps=1)
27     ; (after optimizer)
28     ; %ssccp_006.php:2-5
290000 CV0($x) = RECV 1
300001 T2 = INIT_ARRAY 3 int(1) string("a")
310002 T2 = ADD_ARRAY_ELEMENT int(2) string("a")
320003 T2 = ADD_ARRAY_ELEMENT CV0($x) string("a")
330004 CV1($a) = QM_ASSIGN T2
340005 T2 = FETCH_DIM_R CV1($a) string("a")
350006 ECHO T2
360007 RETURN null
37LIVE RANGES:
38     2: 0002 - 0004 (tmp/var)
39