ext/hash: Swap the checking order of __has_builtin and __GNUC__ (#14185)

closes #14185
This commit is contained in:
Saki Takamachi 2024-05-10 09:37:13 +09:00
parent b8aa68bc09
commit 12dc51976b
No known key found for this signature in database
GPG key ID: E4A36F6D37931A8B
2 changed files with 12 additions and 8 deletions

4
NEWS
View file

@ -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)

View file

@ -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)