From 366aa18fc0ef5bb7220804a36ae0a1fe974e3667 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Mon, 9 Nov 2026 00:42:47 +0000 Subject: [PATCH 1/2] Reapply "Use __attribute__((assume())) in ZEND_ASSUME when available" This reverts commit 2f894389b650511f57ba34b442b0ef3004fa2b3d. --- Zend/zend_portability.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h index 193a28259f0c..13b25d036c1a 100644 --- a/Zend/zend_portability.h +++ b/Zend/zend_portability.h @@ -114,6 +114,9 @@ using std::memory_order_acquire; #if defined(ZEND_WIN32) && !defined(__clang__) # define ZEND_ASSUME(c) __assume(c) +#elif defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 14 + * GCC emits a warning when __attribute__ appears directly after a label, so we need a do-while loop. */ +# define ZEND_ASSUME(c) do { __attribute__((assume(c))); } while (0) #elif defined(__clang__) && __has_builtin(__builtin_assume) # pragma clang diagnostic ignored "-Wassume" # define ZEND_ASSUME(c) __builtin_assume(c) From 74ec5f283d02e55cf7c2256b1db0799ab93328f6 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Mon, 9 Nov 2026 00:47:59 +0000 Subject: [PATCH 2/2] Apply suggestion from @iluuu1994 Co-authored-by: Ilija Tovilo --- Zend/zend_portability.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h index 13b25d036c1a..2c70d5159417 100644 --- a/Zend/zend_portability.h +++ b/Zend/zend_portability.h @@ -115,7 +115,7 @@ using std::memory_order_acquire; #if defined(ZEND_WIN32) && !defined(__clang__) # define ZEND_ASSUME(c) __assume(c) #elif defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 14 - * GCC emits a warning when __attribute__ appears directly after a label, so we need a do-while loop. */ +/* GCC emits a warning when __attribute__ appears directly after a label, so we need a do-while loop. */ # define ZEND_ASSUME(c) do { __attribute__((assume(c))); } while (0) #elif defined(__clang__) && __has_builtin(__builtin_assume) # pragma clang diagnostic ignored "-Wassume"