diff --git a/server/include/utils.h b/server/include/utils.h index 7ecef73a1..cc832c07d 100644 --- a/server/include/utils.h +++ b/server/include/utils.h @@ -15,6 +15,12 @@ #include +#ifdef __GNUC__ + #define EXPECT(x, v) __builtin_expect(x, v) +#else + #define EXPECT(x) (x) +#endif + /* Some color escape codes for pretty log messages */ #define RED(str) "\x1B[31m" str "\x1B[0m" /**< Print str in red */ #define GRN(str) "\x1B[32m" str "\x1B[0m" /**< Print str in green */ @@ -70,7 +76,7 @@ struct timespec timespec_rate(double rate); /** Check assertion and exit if failed. */ #define assert(exp) do { \ - if (!(exp)) { \ + if (EXPECT(exp, 0)) { \ print(ERROR, "Assertion failed: '%s' in %s, %s:%d", \ #exp, __FUNCTION__, __BASE_FILE__, __LINE__); \ exit(EXIT_FAILURE); \