From 196409fea0ae7c1f530d356a1502781e5d602326 Mon Sep 17 00:00:00 2001 From: Etienne Bergeron Date: Tue, 2 Apr 2013 19:24:22 -0400 Subject: [PATCH] Implement likely/unlikely ifdefs - don't redefine likely/unlikely on compilers already defining them, - don't use builtins on compilers not supporting them. Signed-off-by: Etienne Bergeron Signed-off-by: Mathieu Desnoyers --- include/babeltrace/babeltrace-internal.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/include/babeltrace/babeltrace-internal.h b/include/babeltrace/babeltrace-internal.h index 339c1e7c..0d06ed58 100644 --- a/include/babeltrace/babeltrace-internal.h +++ b/include/babeltrace/babeltrace-internal.h @@ -91,8 +91,21 @@ extern int babeltrace_verbose, babeltrace_debug; #define fprintfn_warning(fp, node, fmt, args...) \ _bt_printfl(fp, "warning", (node)->lineno, fmt, ## args) -#define likely(x) __builtin_expect(!!(x), 1) -#define unlikely(x) __builtin_expect(!!(x), 0) +#ifndef likely +# ifdef __GNUC__ +# define likely(x) __builtin_expect(!!(x), 1) +# else +# define likely(x) (!!(x)) +# endif +#endif + +#ifndef unlikely +# ifdef __GNUC__ +# define unlikely(x) __builtin_expect(!!(x), 0) +# else +# define unlikely(x) (!!(x)) +# endif +#endif /* * BT_HIDDEN: set the hidden attribute for internal functions -- 2.34.1