Given that ARG_CHECK is defined as:
0#define ARG_CHECK(cond) do { \
1 if (EXPECT(!(cond), 0)) { \
2 ctx->illegal_callback.fn(#cond, ctx->illegal_callback.data); \
3 return 0; \
4 } \
5} while(0)
These checks (17 of ’em from a quick grep) make no sense and are doomed to explode:
0ARG_CHECK(ctx != NULL);