X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fconfigurator%2Fconfigurator.c;h=7d9db8a1b407928810f3195b8f1a63d4bd82a366;hp=426a2ad7862f04b1997f9d61f6c3af4658581607;hb=6e1cdb3d8b6fac56b24403e2d0b86810a9ccffb2;hpb=e744ae4399c8dd37a76fa463e982eb8306b1351e diff --git a/tools/configurator/configurator.c b/tools/configurator/configurator.c index 426a2ad7..7d9db8a1 100644 --- a/tools/configurator/configurator.c +++ b/tools/configurator/configurator.c @@ -44,6 +44,9 @@ static struct test tests[] = { "static int __attribute__((const)) func(int x) { return x; }" }, { "HAVE_ATTRIBUTE_MAY_ALIAS", OUTSIDE_MAIN, NULL, "typedef short __attribute__((__may_alias__)) short_a;" }, + { "HAVE_ATTRIBUTE_NORETURN", DEFINES_FUNC, NULL, + "#include \n" + "static void __attribute__((noreturn)) func(int x) { exit(x); }" }, { "HAVE_ATTRIBUTE_PRINTF", DEFINES_FUNC, NULL, "static void __attribute__((format(__printf__, 1, 2))) func(const char *fmt, ...) { }" }, { "HAVE_ATTRIBUTE_UNUSED", OUTSIDE_MAIN, NULL, @@ -85,6 +88,8 @@ static struct test tests[] = { { "HAVE_FOR_LOOP_DECLARATION", INSIDE_MAIN, NULL, "for (int i = 0; i < argc; i++) { return 0; };\n" "return 1;" }, + { "HAVE_FLEXIBLE_ARRAY_MEMBER", OUTSIDE_MAIN, NULL, + "struct foo { unsigned int x; int arr[]; };" }, { "HAVE_GETPAGESIZE", DEFINES_FUNC, NULL, "#include \n" "static int func(void) { return getpagesize(); }" }, @@ -267,9 +272,10 @@ static bool run_test(const char *cmd, struct test *test) if (system("cat " INPUT_FILE) == -1); output = run(cmd, &status); - if (status != 0) { + if (status != 0 || strstr(output, "warning")) { if (verbose) - printf("Compile fail for %s, status %i: %s\n", + printf("Compile %s for %s, status %i: %s\n", + status ? "fail" : "warning", test->name, status, output); if (test->style == EXECUTE) errx(1, "Test for %s did not compile:\n%s",