@@@ control wip@cb
[mLib] / utils / macros.h
index a5263e1..73230bd 100644 (file)
 #define GLUE(x, y) MLIB__GLUE(x, y)
 
 #ifdef static_assert
-#  define STATIC_ASSERT(cond, msg) static_assert(cond, msg)
+#  define STATIC_ASSERT(cond, msg) static_assert(!!(cond), msg)
 #else
 #  define STATIC_ASSERT(cond, msg)                                     \
        IGNORABLE extern char static_assert_failed[2*!!(cond) - 1]
 #endif
 
+#define COMMA ,
+
 /*----- String and character hacks ----------------------------------------*/
 
 #define CTYPE_HACK(func, ch) (func((unsigned char)(ch)))
 #  define IGNORABLE __attribute__((__unused__))
 #endif
 
+#if GCC_VERSION_P(3, 4) || CLANG_VERSION_P(3, 3)
+#  define MUST_CHECK __attribute__((__warn_unused_result__))
+#endif
+
 #if GCC_VERSION_P(4, 5) || CLANG_VERSION_P(3, 3)
 #  define DEPRECATED(msg) __attribute__((__deprecated__(msg)))
 #elif GCC_VERSION_P(3, 1)
 #  define IGNORABLE
 #endif
 
+#ifndef MUST_CHECK
+#  define MUST_CHECK
+#endif
+
 #ifndef GCC_WARNING
 #  define GCC_WARNING(warn)
 #endif