From 952fc4a697002ade31d452be7acf24b893a61dbf Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Tue, 16 Jan 2024 22:41:21 +0100 Subject: [PATCH] Use __attribute__((assume())) in ZEND_ASSUME when available --- Zend/zend_portability.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h index 37449d2db3fa6..945f4a1e2713a 100644 --- a/Zend/zend_portability.h +++ b/Zend/zend_portability.h @@ -89,6 +89,9 @@ #if defined(ZEND_WIN32) && !defined(__clang__) # define ZEND_ASSUME(c) __assume(c) +#elif defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 13 +/* 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)