]> git.ozlabs.org Git - ccan/blobdiff - container_of/test/compile_fail-var-types.c
New variant of container_of: container_of_var, for list.h
[ccan] / container_of / test / compile_fail-var-types.c
diff --git a/container_of/test/compile_fail-var-types.c b/container_of/test/compile_fail-var-types.c
new file mode 100644 (file)
index 0000000..5c77679
--- /dev/null
@@ -0,0 +1,21 @@
+#include "container_of/container_of.h"
+#include <stdlib.h>
+
+struct foo {
+       int a;
+       char b;
+};
+
+int main(int argc, char *argv[])
+{
+       struct foo foo = { .a = 1, .b = 2 }, *foop;
+       int *intp = &foo.a;
+
+#ifdef FAIL
+       /* b is a char, but intp is an int * */
+       foop = container_of_var(intp, foop, b);
+#else
+       foop = NULL;
+#endif
+       return intp == NULL;
+}