From ff20dd1a4d84210d45f01d136730194d69118149 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 24 Jan 2018 20:05:34 +0100 Subject: [PATCH] Disable LIKELY and UNLIKELY for 32bit builds using gcc >= 7 --- rtengine/opthelper.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rtengine/opthelper.h b/rtengine/opthelper.h index d6af9a745..6b1830aa5 100644 --- a/rtengine/opthelper.h +++ b/rtengine/opthelper.h @@ -55,8 +55,13 @@ #ifdef __GNUC__ #define RESTRICT __restrict__ - #define LIKELY(x) __builtin_expect (!!(x), 1) - #define UNLIKELY(x) __builtin_expect (!!(x), 0) + #if __SIZEOF_POINTER__ == 4 && __GNUC__ >= 7 // there seems to be a bug with __builtin_expect on 32bit systems when using gcc >= 7 + #define LIKELY(x) (x) + #define UNLIKELY(x) (x) + #else + #define LIKELY(x) __builtin_expect (!!(x), 1) + #define UNLIKELY(x) __builtin_expect (!!(x), 0) + #endif #if (!defined(WIN32) || defined( __x86_64__ )) #define ALIGNED64 __attribute__ ((aligned (64))) #define ALIGNED16 __attribute__ ((aligned (16)))