From 5d4f8373c44a9fa6b8e96b76bbad46b8f46662f5 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Wed, 29 Jun 2022 03:50:50 +0300 Subject: [PATCH] common: fix usage of __has_builtin for old GCC releases --- common/xash3d_types.h | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/common/xash3d_types.h b/common/xash3d_types.h index ffc3faee..71472d43 100644 --- a/common/xash3d_types.h +++ b/common/xash3d_types.h @@ -87,15 +87,21 @@ typedef uint64_t longtime_t; #define NORETURN #endif -#if defined(__has_builtin) -#if __has_builtin(__builtin_expect) -#define unlikely(x) __builtin_expect(x, 0) -#define likely(x) __builtin_expect(x, 1) -#else // __has_builtin(__builtin_expect) -#define unlikely(x) (x) -#define likely(x) (x) -#endif // __has_builtin(__builtin_expect) -#endif // defined(__has_builtin) +#if ( __GNUC__ >= 3 ) + #define unlikely(x) __builtin_expect(x, 0) + #define likely(x) __builtin_expect(x, 1) +#elif defined( __has_builtin ) + #if __has_builtin( __builtin_expect ) + #define unlikely(x) __builtin_expect(x, 0) + #define likely(x) __builtin_expect(x, 1) + #else + #define unlikely(x) (x) + #define likely(x) (x) + #endif +#else + #define unlikely(x) (x) + #define likely(x) (x) +#endif #ifdef XASH_BIG_ENDIAN