Commit 4156b52296c for php.net
commit 4156b52296c11dffd655256c2c3b13e4c090ebdb
Merge: 27a88a3c90e 8206eb1cb4e
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date: Tue Feb 24 17:31:08 2026 +0100
Merge branch 'PHP-8.5'
* PHP-8.5:
Fix preloaded constant erroneously propagated to file-cached script
diff --cc Zend/Optimizer/zend_optimizer.c
index b57ad3ad426,d3a43617e92..f8cbefdaaf2
--- a/Zend/Optimizer/zend_optimizer.c
+++ b/Zend/Optimizer/zend_optimizer.c
@@@ -774,12 -774,15 +774,15 @@@ void zend_optimizer_shift_jump(const ze
}
}
-static bool zend_optimizer_ignore_class(zval *ce_zv, zend_string *filename)
+static bool zend_optimizer_ignore_class(zval *ce_zv, const zend_string *filename)
{
- zend_class_entry *ce = Z_PTR_P(ce_zv);
+ const zend_class_entry *ce = Z_PTR_P(ce_zv);
if (ce->ce_flags & ZEND_ACC_PRELOADED) {
+ if (CG(compiler_options) & ZEND_COMPILE_WITH_FILE_CACHE) {
+ return true;
+ }
- Bucket *ce_bucket = (Bucket*)((uintptr_t)ce_zv - XtOffsetOf(Bucket, val));
+ const Bucket *ce_bucket = (const Bucket*)((uintptr_t)ce_zv - XtOffsetOf(Bucket, val));
size_t offset = ce_bucket - EG(class_table)->arData;
if (offset < EG(persistent_classes_count)) {
return false;
@@@ -797,7 -800,10 +800,10 @@@ static bool zend_optimizer_ignore_funct
return false;
} else if (fbc->type == ZEND_USER_FUNCTION) {
if (fbc->op_array.fn_flags & ZEND_ACC_PRELOADED) {
+ if (CG(compiler_options) & ZEND_COMPILE_WITH_FILE_CACHE) {
+ return true;
+ }
- Bucket *fbc_bucket = (Bucket*)((uintptr_t)fbc_zv - XtOffsetOf(Bucket, val));
+ const Bucket *fbc_bucket = (const Bucket*)((uintptr_t)fbc_zv - XtOffsetOf(Bucket, val));
size_t offset = fbc_bucket - EG(function_table)->arData;
if (offset < EG(persistent_functions_count)) {
return false;