]> pd.if.org Git - pdclib/commitdiff
assert: for assert(x), mark !x case as _PDCLIB_UNREACHABLE
authorOwen Shepherd <owen.shepherd@e43.eu>
Mon, 31 Dec 2012 00:29:06 +0000 (00:29 +0000)
committerOwen Shepherd <owen.shepherd@e43.eu>
Mon, 31 Dec 2012 00:29:06 +0000 (00:29 +0000)
includes/assert.h

index ca0022d9d03401e489f480c96c6d887e158c6d81..cb5c47e4bd2875ba8e1874c96c6e6b7c951d0562 100644 (file)
@@ -20,7 +20,10 @@ void _PDCLIB_assert89( char const * const );
 #undef assert
 
 #ifdef NDEBUG
-#define assert( ignore ) ( (void) 0 )
+#define assert( ignore ) do { \
+        if(!(expression)) { _PDCLIB_UNREACHABLE; } \
+    } while(0)
+
 #elif _PDCLIB_C_MIN(99)
 #define assert(expression) \
     do { if(!(expression)) { \
@@ -29,8 +32,10 @@ void _PDCLIB_assert89( char const * const );
                          ", file " __FILE__ \
                          ", line " _PDCLIB_symbol2string( __LINE__ ) \
                          "." _PDCLIB_endl ); \
+        _PDCLIB_UNREACHABLE; \
       } \
     } while(0)
+    
 #else
 #define assert(expression) \
     do { if(!(expression)) { \
@@ -38,6 +43,7 @@ void _PDCLIB_assert89( char const * const );
                          ", file " __FILE__ \
                          ", line " _PDCLIB_symbol2string( __LINE__ ) \
                          "." _PDCLIB_endl ); \
+        _PDCLIB_UNREACHABLE; \
       } \
     } while(0)
 #endif