Skip to content

Commit

Permalink
Add tests for GH-17151
Browse files Browse the repository at this point in the history
  • Loading branch information
iluuu1994 committed Dec 18, 2024
1 parent f044174 commit cbe9d67
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 0 deletions.
22 changes: 22 additions & 0 deletions ext/opcache/tests/jit/gh17151_1.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
--TEST--
GH-17151: ZEND_FETCH_OBJ_R may modify RC of op1
--FILE--
<?php

class C {
public function __get($name) {
return $this;
}
}

function test() {
$x = (new C)->bar;
var_dump($x);
}

test();

?>
--EXPECTF--
object(C)#%d (0) {
}
29 changes: 29 additions & 0 deletions ext/opcache/tests/jit/gh17151_2.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
--TEST--
GH-17151: ZEND_FETCH_OBJ_R may modify RC of op1
--FILE--
<?php

class C {
public static $prop;

public function __get($name) {
C::$prop = null;
}

public function __destruct() {
echo __METHOD__, "\n";
}
}

function test() {
C::$prop = new C();
C::$prop->bar;
}

test();
echo "Done\n";

?>
--EXPECT--
C::__destruct
Done
25 changes: 25 additions & 0 deletions ext/opcache/tests/jit/gh17151_3.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
--TEST--
GH-17151: Method calls may modify RC of ZEND_INIT_METHOD_CALL op1
--FILE--
<?php

class C {
public static $prop;

public function storeThis() {
self::$prop = $this;
}
}

function test() {
$c = new C();
$c->storeThis();
$c = null;
}

test();

?>
===DONE===
--EXPECT--
===DONE===

0 comments on commit cbe9d67

Please sign in to comment.