@@ -17224,7 +17224,10 @@ static void jit_frameless_icall1(zend_jit_ctx *jit, const zend_op *opline, uint3
1722417224 ir_ref op1_ref = jit_ZVAL_ADDR(jit, op1_addr);
1722517225 jit_set_Z_TYPE_INFO(jit, res_addr, IS_NULL);
1722617226 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) {
17227- zend_jit_zval_check_undef(jit, op1_ref, opline->op1.var, opline, 1);
17227+ op1_ref = zend_jit_zval_check_undef(jit, op1_ref, opline->op1.var, opline, 1);
17228+ op1_info &= ~MAY_BE_UNDEF;
17229+ op1_info |= MAY_BE_NULL;
17230+ op1_addr = ZEND_ADDR_REF_ZVAL(op1_ref);
1722817231 }
1722917232 if (op1_info & MAY_BE_REF) {
1723017233 op1_ref = jit_ZVAL_DEREF_ref(jit, op1_ref);
@@ -17266,10 +17269,16 @@ static void jit_frameless_icall2(zend_jit_ctx *jit, const zend_op *opline, uint3
1726617269 ir_ref op2_ref = jit_ZVAL_ADDR(jit, op2_addr);
1726717270 jit_set_Z_TYPE_INFO(jit, res_addr, IS_NULL);
1726817271 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) {
17269- zend_jit_zval_check_undef(jit, op1_ref, opline->op1.var, opline, 1);
17272+ op1_ref = zend_jit_zval_check_undef(jit, op1_ref, opline->op1.var, opline, 1);
17273+ op1_info &= ~MAY_BE_UNDEF;
17274+ op1_info |= MAY_BE_NULL;
17275+ op1_addr = ZEND_ADDR_REF_ZVAL(op1_ref);
1727017276 }
1727117277 if (opline->op2_type == IS_CV && (op2_info & MAY_BE_UNDEF)) {
17272- zend_jit_zval_check_undef(jit, op2_ref, opline->op2.var, opline, 1);
17278+ op2_ref = zend_jit_zval_check_undef(jit, op2_ref, opline->op2.var, opline, 1);
17279+ op2_info &= ~MAY_BE_UNDEF;
17280+ op2_info |= MAY_BE_NULL;
17281+ op2_addr = ZEND_ADDR_REF_ZVAL(op2_ref);
1727317282 }
1727417283 if (op1_info & MAY_BE_REF) {
1727517284 op1_ref = jit_ZVAL_DEREF_ref(jit, op1_ref);
@@ -17325,13 +17334,22 @@ static void jit_frameless_icall3(zend_jit_ctx *jit, const zend_op *opline, uint3
1732517334 ir_ref op3_ref = jit_ZVAL_ADDR(jit, op3_addr);
1732617335 jit_set_Z_TYPE_INFO(jit, res_addr, IS_NULL);
1732717336 if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) {
17328- zend_jit_zval_check_undef(jit, op1_ref, opline->op1.var, opline, 1);
17337+ op1_ref = zend_jit_zval_check_undef(jit, op1_ref, opline->op1.var, opline, 1);
17338+ op1_info &= ~MAY_BE_UNDEF;
17339+ op1_info |= MAY_BE_NULL;
17340+ op1_addr = ZEND_ADDR_REF_ZVAL(op1_ref);
1732917341 }
1733017342 if (opline->op2_type == IS_CV && (op2_info & MAY_BE_UNDEF)) {
17331- zend_jit_zval_check_undef(jit, op2_ref, opline->op2.var, opline, 1);
17343+ op2_ref = zend_jit_zval_check_undef(jit, op2_ref, opline->op2.var, opline, 1);
17344+ op2_info &= ~MAY_BE_UNDEF;
17345+ op2_info |= MAY_BE_NULL;
17346+ op2_addr = ZEND_ADDR_REF_ZVAL(op2_ref);
1733217347 }
1733317348 if ((opline+1)->op1_type == IS_CV && (op1_data_info & MAY_BE_UNDEF)) {
17334- zend_jit_zval_check_undef(jit, op3_ref, (opline+1)->op1.var, opline, 1);
17349+ op3_ref = zend_jit_zval_check_undef(jit, op3_ref, (opline+1)->op1.var, opline, 1);
17350+ op1_data_info &= ~MAY_BE_UNDEF;
17351+ op1_data_info |= MAY_BE_NULL;
17352+ op3_addr = ZEND_ADDR_REF_ZVAL(op3_ref);
1733517353 }
1733617354 if (op1_info & MAY_BE_REF) {
1733717355 op1_ref = jit_ZVAL_DEREF_ref(jit, op1_ref);
0 commit comments