xref: /PHP-7.4/ext/opcache/tests/opt/sccp_006.phpt (revision 12edc453)
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: ; (lines=1, args=0, vars=0, tmps=0)
20    ; (after optimizer)
21    ; %ssccp_006.php:1-7
22L0 (7):     RETURN int(1)
23
24foo: ; (lines=8, args=1, vars=2, tmps=1)
25    ; (after optimizer)
26    ; %ssccp_006.php:2-5
27L0 (2):     CV0($x) = RECV 1
28L1 (3):     T2 = INIT_ARRAY 3 int(1) string("a")
29L2 (3):     T2 = ADD_ARRAY_ELEMENT int(2) string("a")
30L3 (3):     T2 = ADD_ARRAY_ELEMENT CV0($x) string("a")
31L4 (3):     CV1($a) = QM_ASSIGN T2
32L5 (4):     T2 = FETCH_DIM_R CV1($a) string("a")
33L6 (4):     ECHO T2
34L7 (5):     RETURN null
35LIVE RANGES:
36        2: L2 - L4 (tmp/var)
37