From: Etienne Bergeron Date: Tue, 2 Apr 2013 23:24:22 +0000 (-0400) Subject: Implement likely/unlikely ifdefs X-Git-Tag: v1.1.1~58 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=196409fea0ae7c1f530d356a1502781e5d602326;ds=sidebyside 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 --- 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