xref: /PHP-8.1/ext/opcache/tests/opt/dce_002.phpt (revision e9f783fc)
1--TEST--
2DCE 002: func_get_args() disables deletion of assignments to parameter variables
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 $a) {
14    $a = 10;
15    $b = 20;
16    $x = func_get_args();
17    $a = 30;
18    $b = 40;
19    return $x;
20}
21?>
22--EXPECTF--
23$_main:
24     ; (lines=1, args=0, vars=0, tmps=0)
25     ; (after optimizer)
26     ; %sdce_002.php:1-11
270000 RETURN int(1)
28
29foo:
30     ; (lines=5, args=1, vars=2, tmps=0)
31     ; (after optimizer)
32     ; %sdce_002.php:2-9
330000 CV0($a) = RECV 1
340001 CV0($a) = QM_ASSIGN int(10)
350002 CV1($x) = FUNC_GET_ARGS
360003 CV0($a) = QM_ASSIGN int(30)
370004 RETURN CV1($x)
38