From 12dc51976b13e078ddde75167903077d7f1d380e Mon Sep 17 00:00:00 2001 From: Saki Takamachi Date: Fri, 10 May 2024 09:37:13 +0900 Subject: [PATCH] ext/hash: Swap the checking order of __has_builtin and __GNUC__ (#14185) closes #14185 --- NEWS | 4 ++++ ext/hash/murmur/endianness.h | 16 ++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index dedf9db8e2e..961dcffcb5d 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,10 @@ PHP NEWS . Fix crash when calling childNodes next() when iterator is exhausted. (nielsdos) +- Hash: + . ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__` + (Saki Takamachi) + - Opcache: . Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm). (ilutov) diff --git a/ext/hash/murmur/endianness.h b/ext/hash/murmur/endianness.h index cbad6dc72fb..11f35a402be 100644 --- a/ext/hash/murmur/endianness.h +++ b/ext/hash/murmur/endianness.h @@ -13,14 +13,7 @@ FORCE_INLINE int IsBigEndian(void) # define BSWAP32(u) _byteswap_ulong(u) # define BSWAP64(u) _byteswap_uint64(u) #else -# ifdef __has_builtin -# if __has_builtin(__builtin_bswap32) -# define BSWAP32(u) __builtin_bswap32(u) -# endif // __has_builtin(__builtin_bswap32) -# if __has_builtin(__builtin_bswap64) -# define BSWAP64(u) __builtin_bswap64(u) -# endif // __has_builtin(__builtin_bswap64) -# elif defined(__GNUC__) && ( \ +# if defined(__GNUC__) && ( \ __GNUC__ > 4 || ( \ __GNUC__ == 4 && ( \ __GNUC_MINOR__ >= 3 \ @@ -29,6 +22,13 @@ FORCE_INLINE int IsBigEndian(void) ) # define BSWAP32(u) __builtin_bswap32(u) # define BSWAP64(u) __builtin_bswap64(u) +# elif defined(__has_builtin) +# if __has_builtin(__builtin_bswap32) +# define BSWAP32(u) __builtin_bswap32(u) +# endif // __has_builtin(__builtin_bswap32) +# if __has_builtin(__builtin_bswap64) +# define BSWAP64(u) __builtin_bswap64(u) +# endif // __has_builtin(__builtin_bswap64) # endif // __has_builtin #endif // defined(_MSC_VER)