From f0858d891fb4bfb95be11b88d6afbe4ae48d1f53 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 17 May 2021 10:18:26 +0200 Subject: [PATCH] Record warnings during early binding These should also get replayed when the class is loaded from opcache. --- Zend/zend_inheritance.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index 60e60c1fca9..05ee34da2b5 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -2960,6 +2960,10 @@ zend_class_entry *zend_try_early_bind(zend_class_entry *ce, zend_class_entry *pa orig_linking_class = CG(current_linking_class); CG(current_linking_class) = is_cacheable ? ce : NULL; + if (is_cacheable) { + zend_begin_record_errors(); + } + zend_do_inheritance_ex(ce, parent_ce, status == INHERITANCE_SUCCESS); if (parent_ce && parent_ce->num_interfaces) { zend_do_inherit_interfaces(ce, parent_ce); @@ -2972,6 +2976,7 @@ zend_class_entry *zend_try_early_bind(zend_class_entry *ce, zend_class_entry *pa ce->ce_flags |= ZEND_ACC_LINKED; CG(current_linking_class) = orig_linking_class; + EG(record_errors) = false; if (is_cacheable) { HashTable *ht = (HashTable*)ce->inheritance_cache;