From: Albert Cahalan <albert@users.sourceforge.net>
1. allows likely() and unlikely() to work for pointers
2. fixes likely() (in C, any non-zero value is true)
#define __builtin_expect(x, expected_value) (x)
#endif
-#define likely(x) __builtin_expect((x),1)
-#define unlikely(x) __builtin_expect((x),0)
+#define likely(x) __builtin_expect(!!(x), 1)
+#define unlikely(x) __builtin_expect(!!(x), 0)
/*
* Allow us to mark functions as 'deprecated' and have gcc emit a nice