6.7.10p3 insists that the expression be an integer constant expression,
but this isn't in a constraint, so the behaviour is undefined if it's
not an integer constant expression. Apply `!!' to force pointerish
expressions to integer type.
*headdesk*
#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]