X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftypesafe_cb%2Ftest%2Fcompile_fail-cast_if_type-promotable.c;fp=ccan%2Ftypesafe_cb%2Ftest%2Fcompile_fail-cast_if_type-promotable.c;h=a0362485c54320e534002c92273199514bc07aa4;hp=0000000000000000000000000000000000000000;hb=894dd68a8c899ca7b5028334804fa1638b583908;hpb=5282308f19084f52e55c6c7cb12586d9e3c53532 diff --git a/ccan/typesafe_cb/test/compile_fail-cast_if_type-promotable.c b/ccan/typesafe_cb/test/compile_fail-cast_if_type-promotable.c new file mode 100644 index 00000000..a0362485 --- /dev/null +++ b/ccan/typesafe_cb/test/compile_fail-cast_if_type-promotable.c @@ -0,0 +1,23 @@ +#include +#include + +static void _set_some_value(void *val) +{ +} + +#define set_some_value(expr) \ + _set_some_value(cast_if_type(void *, (expr), (expr), int)) + +int main(int argc, char *argv[]) +{ +#ifdef FAIL + bool x = 0; +#if !HAVE_TYPEOF||!HAVE_BUILTIN_CHOOSE_EXPR||!HAVE_BUILTIN_TYPES_COMPATIBLE_P +#error "Unfortunately we don't fail if cast_if_type is a noop." +#endif +#else + int x = 0; +#endif + set_some_value(x); + return 0; +}