X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftypesafe_cb%2Ftest%2Fcompile_fail-cast_if_any.c;fp=ccan%2Ftypesafe_cb%2Ftest%2Fcompile_fail-cast_if_any.c;h=9ead3de562f3309b9c4df70be550b57a74845d61;hb=175ca4aa64c3489011b441a8c709693af1e70db0;hp=0000000000000000000000000000000000000000;hpb=67a035869c6f3512ba943ae197b407f182a4506d;p=ccan diff --git a/ccan/typesafe_cb/test/compile_fail-cast_if_any.c b/ccan/typesafe_cb/test/compile_fail-cast_if_any.c new file mode 100644 index 00000000..9ead3de5 --- /dev/null +++ b/ccan/typesafe_cb/test/compile_fail-cast_if_any.c @@ -0,0 +1,39 @@ +#include +#include + +struct foo { + int x; +}; + +struct bar { + int x; +}; + +struct baz { + int x; +}; + +struct any { + int x; +}; + +struct other { + int x; +}; + +static void take_any(struct any *any) +{ +} + +int main(int argc, char *argv[]) +{ +#ifdef FAIL + struct other +#else + struct foo +#endif + *arg = NULL; + take_any(cast_if_any(struct any *, arg, arg, + struct foo *, struct bar *, struct baz *)); + return 0; +}