sccp_008.phpt 791 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. SCCP 008: 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. if ($x) {
  15. $a = [0,1];
  16. } else {
  17. $a = [0,2];
  18. }
  19. echo $a[1];
  20. }
  21. ?>
  22. --EXPECTF--
  23. $_main:
  24. ; (lines=1, args=0, vars=0, tmps=0)
  25. ; (after optimizer)
  26. ; %ssccp_008.php:1-11
  27. 0000 RETURN int(1)
  28. foo:
  29. ; (lines=8, args=1, vars=2, tmps=1)
  30. ; (after optimizer)
  31. ; %ssccp_008.php:2-9
  32. 0000 CV0($x) = RECV 1
  33. 0001 JMPZ CV0($x) 0004
  34. 0002 CV1($a) = QM_ASSIGN array(...)
  35. 0003 JMP 0005
  36. 0004 CV1($a) = QM_ASSIGN array(...)
  37. 0005 T2 = FETCH_DIM_R CV1($a) int(1)
  38. 0006 ECHO T2
  39. 0007 RETURN null