37 lines
778 B
C
37 lines
778 B
C
|
#include <stdbool.h>
|
||
|
|
||
|
/** Define a proposition as likely true.
|
||
|
* @param prop Proposition
|
||
|
**/
|
||
|
#undef likely
|
||
|
#ifdef __GNUC__
|
||
|
#define likely(prop) \
|
||
|
__builtin_expect((prop) ? true : false, true /* likely */)
|
||
|
#else
|
||
|
#define likely(prop) \
|
||
|
(prop)
|
||
|
#endif
|
||
|
|
||
|
/** Define a proposition as likely false.
|
||
|
* @param prop Proposition
|
||
|
**/
|
||
|
#undef unlikely
|
||
|
#ifdef __GNUC__
|
||
|
#define unlikely(prop) \
|
||
|
__builtin_expect((prop) ? true : false, false /* unlikely */)
|
||
|
#else
|
||
|
#define unlikely(prop) \
|
||
|
(prop)
|
||
|
#endif
|
||
|
|
||
|
/** Define a variable as unused.
|
||
|
**/
|
||
|
#undef unused
|
||
|
#ifdef __GNUC__
|
||
|
#define unused(variable) \
|
||
|
variable __attribute__((unused))
|
||
|
#else
|
||
|
#define unused(variable)
|
||
|
#warning This compiler has no support for GCC attributes
|
||
|
#endif
|