[php-src] PHP-8.5: Backport GH-24241 to 8.4
| From: | ndossche | Date: | Sat, 10 Oct 2026 23:14:55 +0000 |
| Subject: | [php-src] PHP-8.5: Backport GH-24241 to 8.4 | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-142170@lists.php.net to get a copy of this message | ||
Author: ndossche (ndossche)
Date: 2026-10-11T01:14:06+02:00
Commit: https://github.com/php/php-src/commit/2842e1e76ee0711e4668efb798d1707282c2a898
Raw diff: https://github.com/php/php-src/commit/2842e1e76ee0711e4668efb798d1707282c2a898.diff
Backport GH-24241 to 8.4
Changed paths:
M Zend/Optimizer/zend_inference.c
Diff:
diff --git a/Zend/Optimizer/zend_inference.c b/Zend/Optimizer/zend_inference.c
index 0c24691ebba6..7fa5530c1302 100644
--- a/Zend/Optimizer/zend_inference.c
+++ b/Zend/Optimizer/zend_inference.c
@@ -5030,7 +5030,6 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op
*ssa_op
case ZEND_SWITCH_STRING:
case ZEND_MATCH:
case ZEND_ISSET_ISEMPTY_VAR:
- case ZEND_ISSET_ISEMPTY_CV:
case ZEND_FUNC_NUM_ARGS:
case ZEND_FUNC_GET_ARGS:
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
case ZEND_BOOL:
case ZEND_JMP_SET:
return (t1 & MAY_BE_OBJECT);
+ case ZEND_ISSET_ISEMPTY_CV:
+ if (!(opline->extended_value & ZEND_ISEMPTY)) {
+ return 0;
+ }
+ /* empty() casts to bool: objects may have a cast handler */
+ return (t1 & (MAY_BE_OBJECT|MAY_BE_DOUBLE));
case ZEND_BOOL_XOR:
return (t1 & MAY_BE_OBJECT) || (t2 & MAY_BE_OBJECT);
case ZEND_IS_EQUAL: