chiark / gitweb /
struct/buf.c: Add functions for serializing and deserializing `kludge64'.
[mLib] / utils / macros.h
index a5263e19ed319ef09d795284a52370706450e28b..70f535fe51a28ca5a28f28734b7e6d08568dda0c 100644 (file)
@@ -51,7 +51,7 @@
 #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]
 #  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