/* PR77336 - -Wsuggest-attribute=format warning overly simplistic */ /* { dg-do compile } */ /* { dg-options "-Wsuggest-attribute=format" } */ #include "format.h" const char format[] = "%i"; void foo (char *d, unsigned n, va_list va) { (void)&n; /* The following calls don't imply that the enclosing function is a candiate for the format attribute because it uses a string constant as the format. */ vsnprintf (d, n, "%i", va); vsnprintf (d, n, format, va); /* In theory this should not trigger the warning either but GCC doesn't treat the local static constant the same way as the global and issues a false positive. const char fmt[] = "%i"; vsnprintf (d, n, fmt, va); */ } void bar (char *d, unsigned n, const char *f, va_list va) { (void)&n; /* The following call suggests that the enclosing function might be a candiate for the format attribute because it doesn't use a string literal as the format. */ vsnprintf (d, n, f, va); /* { dg-warning "function .bar. might be a candidate for .gnu_printf. format attribute" } */ }