sccp_006.phpt 857 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. SCCP 006: Conditional Constant Propagation of non-escaping array elements
  3. --INI--
  4. opcache.enable=1
  5. opcache.enable_cli=1
  6. opcache.optimization_level=-1
  7. opcache.opt_debug_level=0x20000
  8. opcache.preload=
  9. --EXTENSIONS--
  10. opcache
  11. --FILE--
  12. <?php
  13. function 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
  23. 0000 RETURN int(1)
  24. foo:
  25. ; (lines=8, args=1, vars=2, tmps=1)
  26. ; (after optimizer)
  27. ; %ssccp_006.php:2-5
  28. 0000 CV0($x) = RECV 1
  29. 0001 T2 = INIT_ARRAY 3 int(1) string("a")
  30. 0002 T2 = ADD_ARRAY_ELEMENT int(2) string("a")
  31. 0003 T2 = ADD_ARRAY_ELEMENT CV0($x) string("a")
  32. 0004 CV1($a) = QM_ASSIGN T2
  33. 0005 T2 = FETCH_DIM_R CV1($a) string("a")
  34. 0006 ECHO T2
  35. 0007 RETURN null
  36. LIVE RANGES:
  37. 2: 0002 - 0004 (tmp/var)