Commit 35258957cd1 for php.net

commit 35258957cd1d0c58b0882d4545294df1a3ac8ea4
Author: DubbleClick <m@pyc.ac>
Date:   Fri Mar 27 16:26:42 2026 +0700

    Fix ZEND_API mismatch on zend_ce_closure forward decl for Windows+Clang

    Closes GH-21547

diff --git a/NEWS b/NEWS
index 597e93bf081..180446136cd 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,8 @@ PHP                                                                        NEWS
 - Core:
   . Fixed bug GH-19983 (GC assertion failure with fibers, generators and
     destructors). (iliaal)
+  . Fixed ZEND_API mismatch on zend_ce_closure forward decl for Windows+Clang.
+    (henderkes)

 - SPL:
   . Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index c08adf2a41b..15df09e58d5 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -248,7 +248,7 @@ static zend_always_inline void zend_cast_zval_to_object(zval *result, zval *expr
 }

 static zend_always_inline void zend_cast_zval_to_array(zval *result, zval *expr, uint8_t op1_type) {
-	extern zend_class_entry *zend_ce_closure;
+	extern ZEND_API zend_class_entry *zend_ce_closure;
 	if (op1_type == IS_CONST || Z_TYPE_P(expr) != IS_OBJECT || Z_OBJCE_P(expr) == zend_ce_closure) {
 		if (Z_TYPE_P(expr) != IS_NULL) {
 			if (UNEXPECTED(Z_TYPE_P(expr) == IS_DOUBLE && zend_isnan(Z_DVAL_P(expr)))) {