Skip to content

Commit 24d6dce

Browse files
committed
Merge branch 'PHP-8.3'
* PHP-8.3: Fix invalid returned opcode for memoized expressions
2 parents 08fea2a + 4ba5699 commit 24d6dce

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

Zend/tests/assign_coalesce_009.phpt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
--TEST--
2+
Invalid opcode returned from zend_compile_var_inner() for memoized expression
3+
--FILE--
4+
<?php
5+
strlen("foo")[0] ??= 123;
6+
?>
7+
--EXPECTF--
8+
Fatal error: Cannot use result of built-in function in write context in %s on line %d

Zend/zend_compile.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10616,7 +10616,8 @@ static zend_op *zend_compile_var_inner(znode *result, zend_ast *ast, uint32_t ty
1061610616
case ZEND_AST_NULLSAFE_METHOD_CALL:
1061710617
case ZEND_AST_STATIC_CALL:
1061810618
zend_compile_memoized_expr(result, ast);
10619-
return &CG(active_op_array)->opcodes[CG(active_op_array)->last - 1];
10619+
/* This might not actually produce an opcode, e.g. for expressions evaluated at comptime. */
10620+
return NULL;
1062010621
}
1062110622
}
1062210623

0 commit comments

Comments
 (0)