compiler: RETURNS_NONNULL macro
[ccan] / ccan / asearch / test / compile_fail-return-value-const.c
1 #include <ccan/asearch/asearch.h>
2 #include <ccan/array_size/array_size.h>
3 #include <string.h>
4
5 #include <ccan/asearch/asearch.c>
6
7 static int cmp(const char *key, const char *const *elem, void *ctx)
8 {
9         return strcmp(key, *elem);
10 }
11
12 int main(void)
13 {
14         const char key[] = "key";
15         const char *elems[] = { "a", "big", "list", "of", "things" };
16
17 #ifdef FAIL
18         char **p;
19 #if !HAVE_TYPEOF
20 #error "Unfortunately we don't fail if no typeof."
21 #endif
22 #else
23         const char **p;
24 #endif
25         p = asearch(key, elems, ARRAY_SIZE(elems), cmp, NULL);
26         return p ? 0 : 1;
27 }