md4c

C Markdown parser. Fast. SAX-like interface. Compliant to CommonMark specification.
git clone https://noulin.net/git/md4c.git
Log | Files | Refs | README | LICENSE

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:
Mmd4c/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 ***