summaryrefslogtreecommitdiff
path: root/lib/ccan/tlist/test/compile_fail-tlist_add.c
blob: addcf01e9b141afe4bc0000eade47ad8d6175020 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <ccan/tlist/tlist.h>

TLIST_TYPE(children, struct child);
TLIST_TYPE(cousins, struct cousin);

struct child {
	const char *name;
	struct ccan_list_node list;
};

struct cousin {
	const char *name;
	struct ccan_list_node list;
};

int main(int argc, char *argv[])
{
	struct tlist_children children;
	struct tlist_cousins cousins;
	struct child child = { "child" };
	struct cousin cousin = { "cousin" };

	tlist_init(&children);
	tlist_init(&cousins);
	tlist_add(&children, &child, list);
	tlist_add(&cousins, &cousin, list);
	tlist_del_from(&cousins, &cousin, list);
#ifdef FAIL
#if !HAVE_FLEXIBLE_ARRAY_MEMBER
#error Need flexible array members to check type
#endif
	tlist_add(&children, &cousin, list);
#endif
	return 0;
}