/* { dg-additional-options "-Wno-analyzer-too-complex" } */ #define NULL ((void *)0) void test_sentinel (int arg, ...) { const char *s; __builtin_va_list ap; __builtin_va_start (ap, arg); while (s = __builtin_va_arg (ap, char *)) /* { dg-warning "'ap' has no more arguments \\(2 consumed\\)" } */ { (void)s; } __builtin_va_end (ap); } void test_caller (void) { test_sentinel (42, "foo", "bar", NULL); } void missing_sentinel (void) { test_sentinel (42, "foo", "bar"); }