diff options
Diffstat (limited to 'ext/opcache/tests/jit/assign_035.phpt')
-rw-r--r-- | ext/opcache/tests/jit/assign_035.phpt | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/opcache/tests/jit/assign_035.phpt b/ext/opcache/tests/jit/assign_035.phpt new file mode 100644 index 0000000000..c51b773727 --- /dev/null +++ b/ext/opcache/tests/jit/assign_035.phpt @@ -0,0 +1,39 @@ +--TEST-- +JIT ASSIGN: Segfault & memleak if no RC info +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +opcache.protect_memory=1 +;opcache.jit_debug=257 +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php + +class A { + + public function test() { + $closure = function() { return "string"; }; + + $arr = [ + 'a' => $closure(), + 'b' => [$closure() => [],], + ]; + + $x = $arr; + unset($x['b'][$closure()]['d']); + + $x = $arr; + $x['a'] = $closure(); + + return "okey"; + } +} + +$a = new A(); +echo $a->test(); +?> +--EXPECT-- +okey |