1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00

Undef result on throwing typed reference assignment

This commit is contained in:
Nikita Popov
2021-09-16 15:47:38 +02:00
parent 4c8093a9f1
commit 83f283f5ea
2 changed files with 28 additions and 1 deletions

View File

@@ -5995,7 +5995,7 @@ static int zend_jit_assign_to_typed_ref(dasm_State **Dst,
| // if (UNEXPECTED(EG(exception) != NULL)) {
| MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
| je >8 // END OF zend_jit_assign_to_variable()
| jmp ->exception_handler
| jmp ->exception_handler_undef
} else {
| jmp >8
}

View File

@@ -0,0 +1,27 @@
--TEST--
JIT ASSIGN: Typed reference error with return value
--INI--
opcache.enable=1
opcache.enable_cli=1
opcache.file_update_protection=0
opcache.jit_buffer_size=1M
opcache.protect_memory=1
--FILE--
<?php
class Test {
public string $x;
}
function test() {
$test = new Test;
$test->x = "";
$r =& $test->x;
+($r = $y);
}
try {
test();
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
--EXPECTF--
Warning: Undefined variable $y in %s on line %d
Cannot assign null to reference held by property Test::$x of type string