tlist: typesafe variant of list module.
[ccan] / ccan / tlist / test / compile_fail-tlist_del_from.c
1 #include <ccan/tlist/tlist.h>
2
3 TLIST_TYPE(children, struct child);
4 TLIST_TYPE(cousins, struct cousin);
5
6 struct child {
7         const char *name;
8         struct list_node list;
9 };
10
11 struct cousin {
12         const char *name;
13         struct list_node list;
14 };
15
16 int main(int argc, char *argv[])
17 {
18         struct tlist_children children;
19         struct tlist_cousins cousins;
20         struct child child = { "child" };
21         struct cousin cousin = { "cousin" };
22
23         tlist_init(&children);
24         tlist_init(&cousins);
25         tlist_add(&children, &child, list);
26         tlist_add(&cousins, &cousin, list);
27 #ifdef FAIL
28 #if !HAVE_FLEXIBLE_ARRAY_MEMBER
29 #error Need flexible array members to check type
30 #endif
31         tlist_del_from(&children, &cousin, list);
32 #endif
33         return 0;
34 }