X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fcast%2Ftest%2Fcompile_fail-cast_const-sizesame.c;fp=ccan%2Fcast%2Ftest%2Fcompile_fail-cast_const-sizesame.c;h=d401cc8ca91c488c159fb8f0d0bdb63bb0fd9df4;hb=118ace351b789dfaca8866f84a8cd4b924941268;hp=0000000000000000000000000000000000000000;hpb=ce6eef4132acad78ae04a9e7c388ef932fb6411d;p=ccan diff --git a/ccan/cast/test/compile_fail-cast_const-sizesame.c b/ccan/cast/test/compile_fail-cast_const-sizesame.c new file mode 100644 index 00000000..d401cc8c --- /dev/null +++ b/ccan/cast/test/compile_fail-cast_const-sizesame.c @@ -0,0 +1,28 @@ +#include +#include + +/* Note: this *isn't* sizeof(char) on all platforms. */ +struct char_struct { + char c; +}; + +int main(int argc, char *argv[]) +{ + char *uc; + const +#ifdef FAIL + struct char_struct +#else + char +#endif + *p = NULL; + + uc = cast_const(char *, p); + return 0; +} + +#ifdef FAIL +#if !HAVE_TYPEOF||!HAVE_BUILTIN_CHOOSE_EXPR||!HAVE_BUILTIN_TYPES_COMPATIBLE_P +#error "Unfortunately we don't fail if cast_const can only use size" +#endif +#endif