Skip to content

Commit 2842e1e

Browse files
committed
Backport GH-24241 to 8.4
1 parent bea8d20 commit 2842e1e

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

‎Zend/Optimizer/zend_inference.c‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5030,7 +5030,6 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
50305030
case ZEND_SWITCH_STRING:
50315031
case ZEND_MATCH:
50325032
case ZEND_ISSET_ISEMPTY_VAR:
5033-
case ZEND_ISSET_ISEMPTY_CV:
50345033
case ZEND_FUNC_NUM_ARGS:
50355034
case ZEND_FUNC_GET_ARGS:
50365035
case ZEND_COPY_TMP:
@@ -5121,6 +5120,12 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
51215120
case ZEND_BOOL:
51225121
case ZEND_JMP_SET:
51235122
return (t1 & MAY_BE_OBJECT);
5123+
case ZEND_ISSET_ISEMPTY_CV:
5124+
if (!(opline->extended_value & ZEND_ISEMPTY)) {
5125+
return 0;
5126+
}
5127+
/* empty() casts to bool: objects may have a cast handler */
5128+
return (t1 & (MAY_BE_OBJECT|MAY_BE_DOUBLE));
51245129
case ZEND_BOOL_XOR:
51255130
return (t1 & MAY_BE_OBJECT) || (t2 & MAY_BE_OBJECT);
51265131
case ZEND_IS_EQUAL:

0 commit comments

Comments
 (0)