commit 55f39e2a01d0940f88401a5f471c0cb912ceecc6 parent a7899c057b4332ad7fd661ced4ce85f49006bd18 Author: Martin Mitas <mity@morous.org> Date: Tue, 11 Oct 2016 11:13:16 +0200 Fix #definition of MD_ASSERT and MD_UNREACHABLE for non-debug gcc builds. Diffstat:
| M | md4c/md4c.c | | | 11 | +++++++---- |
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/md4c/md4c.c b/md4c/md4c.c @@ -176,18 +176,21 @@ md_log(MD_CTX* ctx, const char* fmt, ...) exit(1); \ } \ } while(0) + + #define MD_UNREACHABLE() MD_ASSERT(1 == 0) #else - #ifdef __gnuc__ - #define MD_ASSERT(cond) do { __builtin_expect((condition) != 0, !0); } while(0) + #ifdef __GNUC__ + #define MD_ASSERT(cond) do { if(!(cond)) __builtin_unreachable(); } while(0) + #define MD_UNREACHABLE() do { __builtin_unreachable(); } while(0) #elif defined _MSC_VER && _MSC_VER > 120 #define MD_ASSERT(cond) do { __assume(cond); } while(0) + #define MD_UNREACHABLE() do { __assume(0); } while(0) #else #define MD_ASSERT(cond) do {} while(0) + #define MD_UNREACHABLE() do {} while(0) #endif #endif -#define MD_UNREACHABLE() MD_ASSERT(1 == 0) - /***************** *** Helpers ***