sccp_022.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. --TEST--
  2. SCCP 022: Invalid types
  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[0] = $x;
  15. $a[1] = 5;
  16. echo $a[1];
  17. $a->foo = 5;
  18. echo $a[1];
  19. }
  20. function bar() {
  21. foreach ($a as $v) {
  22. foreach ($v as $v2) {}
  23. }
  24. }
  25. ?>
  26. --EXPECTF--
  27. $_main:
  28. ; (lines=1, args=0, vars=0, tmps=0)
  29. ; (after optimizer)
  30. ; %s
  31. 0000 RETURN int(1)
  32. foo:
  33. ; (lines=11, args=1, vars=2, tmps=1)
  34. ; (after optimizer)
  35. ; %s
  36. 0000 CV0($x) = RECV 1
  37. 0001 ASSIGN_DIM CV1($a) int(0)
  38. 0002 OP_DATA CV0($x)
  39. 0003 ASSIGN_DIM CV1($a) int(1)
  40. 0004 OP_DATA int(5)
  41. 0005 ECHO string("5")
  42. 0006 ASSIGN_OBJ CV1($a) string("foo")
  43. 0007 OP_DATA int(5)
  44. 0008 T2 = FETCH_DIM_R CV1($a) int(1)
  45. 0009 ECHO T2
  46. 0010 RETURN null
  47. bar:
  48. ; (lines=9, args=0, vars=3, tmps=2)
  49. ; (after optimizer)
  50. ; %s
  51. 0000 V3 = FE_RESET_R CV0($a) 0007
  52. 0001 FE_FETCH_R V3 CV1($v) 0007
  53. 0002 V4 = FE_RESET_R CV1($v) 0005
  54. 0003 FE_FETCH_R V4 CV2($v2) 0005
  55. 0004 JMP 0003
  56. 0005 FE_FREE V4
  57. 0006 JMP 0001
  58. 0007 FE_FREE V3
  59. 0008 RETURN null
  60. LIVE RANGES:
  61. 3: 0001 - 0007 (loop)
  62. 4: 0003 - 0005 (loop)