]> pd.if.org Git - pdclib/blobdiff - includes/assert.h
PDCLib includes with quotes, not <>.
[pdclib] / includes / assert.h
index 349c866f05ccde2664460bd164311d12d5f5d5eb..a1af59f6aa2eed19e5dd4cce546db0109f8ad85e 100644 (file)
@@ -1,11 +1,11 @@
-/* 7.2 Diagnostics <assert.h>
+/* Diagnostics <assert.h>
 
    This file is part of the Public Domain C Library (PDCLib).
    Permission is granted to use, modify, and / or redistribute at will.
 */
 
-#include <_PDCLIB_aux.h>
-#include <_PDCLIB_config.h>
+#include "_PDCLIB_aux.h"
+#include "_PDCLIB_config.h"
 
 /*
    Defines a macro assert() that, depending on the value of the preprocessor
      evaluates to true;
    * print an error message and terminates the program if NDEBUG is not set AND
      the parameter expression evaluates to false.
-  The error message contains the parameter expression, name of the source file
+   The error message contains the parameter expression, name of the source file
   (__FILE__), line number (__LINE__), and (from C99 onward) name of the function
   (__func__).
-   The header can be included MULTIPLE times, and redefines the macro depending
+    The header can be included MULTIPLE times, and redefines the macro depending
    on the current setting of NDEBUG.
 */
 
-_PDCLIB_BEGIN_EXTERN_C
-
 #ifndef _PDCLIB_ASSERT_H
 #define _PDCLIB_ASSERT_H _PDCLIB_ASSERT_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Functions _NOT_ tagged noreturn as this hampers debugging */
 void _PDCLIB_assert99( char const * const, char const * const, char const * const );
 void _PDCLIB_assert89( char const * const );
 
+#ifdef __cplusplus
+}
+#endif
+
+#if _PDCLIB_C_VERSION >= 2011
+#define static_assert _Static_assert
+#else
+#define static_assert( e, m )
+#endif
+
 #endif
 
 /* If NDEBUG is set, assert() is a null operation. */
 #undef assert
 
 #ifdef NDEBUG
-#define assert( ignore ) do { \
-        if(!(expression)) { _PDCLIB_UNREACHABLE; } \
-    } while(0)
-
+#define assert( ignore ) ( (void) 0 )
 #elif _PDCLIB_C_MIN(99)
 #define assert(expression) \
     do { if(!(expression)) { \
@@ -51,7 +60,7 @@ void _PDCLIB_assert89( char const * const );
         _PDCLIB_UNREACHABLE; \
       } \
     } while(0)
-    
+
 #else
 #define assert(expression) \
     do { if(!(expression)) { \
@@ -63,5 +72,3 @@ void _PDCLIB_assert89( char const * const );
       } \
     } while(0)
 #endif
-
-_PDCLIB_END_EXTERN_C