Explicitly cast an expression to bool before handing it off to __builtin_expect.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 29 Aug 2012 23:28:45 +0000 (23:28 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 29 Aug 2012 23:28:45 +0000 (23:28 +0000)
Avoids surprises when someone uses LLVM_(UN)LIKELY with an integer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162877 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/Compiler.h

index 28e4cc6e966019a19f2004a13a5f2d096ca45ffa..4f5b8f82392adb9aaa6a985cacbaac95affcd4d8 100644 (file)
 #endif
 
 #if (__GNUC__ >= 4)
-#define LLVM_LIKELY(EXPR) __builtin_expect((EXPR), true)
-#define LLVM_UNLIKELY(EXPR) __builtin_expect((EXPR), false)
+#define LLVM_LIKELY(EXPR) __builtin_expect((bool)(EXPR), true)
+#define LLVM_UNLIKELY(EXPR) __builtin_expect((bool)(EXPR), false)
 #else
 #define LLVM_LIKELY(EXPR) (EXPR)
 #define LLVM_UNLIKELY(EXPR) (EXPR)