Merge "Define LIKELY and UNLIKELY in a vendor friendly way"

This commit is contained in:
Treehugger Robot 2016-04-19 15:24:14 +00:00 committed by Gerrit Code Review
commit 7ed5194278

View file

@ -123,8 +123,11 @@ char(&ArraySizeHelper(T(&array)[N]))[N]; // NOLINT(readability/casting)
((sizeof(a) / sizeof(*(a))) / \
static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
#define LIKELY(x) __builtin_expect((x), true)
#define UNLIKELY(x) __builtin_expect((x), false)
// Changing this definition will cause you a lot of pain. A majority of
// vendor code defines LIKELY and UNLIKELY this way, and includes
// this header through an indirect path.
#define LIKELY( exp ) (__builtin_expect( (exp) != 0, true ))
#define UNLIKELY( exp ) (__builtin_expect( (exp) != 0, false ))
#define WARN_UNUSED __attribute__((warn_unused_result))