xref: /PHP-7.4/ext/opcache/tests/opt/dce_004.phpt (revision 12edc453)
1--TEST--
2DCE 004: Elimination of assignment to non-escaping arrays
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, int $y) {
14	$a = [$x];
15	$a[1] = $y;
16	$a = $y;
17	return $a;
18}
19--EXPECTF--
20$_main: ; (lines=1, args=0, vars=0, tmps=0)
21    ; (after optimizer)
22    ; %sdce_004.php:1-8
23L0 (8):     RETURN int(1)
24
25foo: ; (lines=4, args=2, vars=3, tmps=0)
26    ; (after optimizer)
27    ; %sdce_004.php:2-7
28L0 (2):     CV0($x) = RECV 1
29L1 (2):     CV1($y) = RECV 2
30L2 (5):     CV2($a) = QM_ASSIGN CV1($y)
31L3 (6):     RETURN CV2($a)
32