https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89449
Bug ID: 89449 Summary: False -Wsuggest-attribute=format warning Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- This is a false positive as one can't actually put format attribute on the function: $ cat valist.c #include <stdarg.h> void logv(const char *format, va_list list) { __builtin_vprintf (format, list); } void __attribute__ ((format (printf, 1, 2))) logv2 (const char *format, va_list list) { __builtin_vprintf (format, list); } $ g++ valist.c -c -Wsuggest-attribute=format valist.c: In function ‘void logv(const char*, __va_list_tag*)’: valist.c:4:33: warning: function ‘void logv(const char*, __va_list_tag*)’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format] 4 | __builtin_vprintf (format, list); | ^ valist.c: At global scope: valist.c:9:40: error: ‘format’ attribute argument 3 value ‘2’ does not refer to a variable argument list 9 | logv2 (const char *format, va_list list) | ^ valist.c: In function ‘void logv2(const char*, __va_list_tag*)’: valist.c:11:33: warning: function ‘void logv2(const char*, __va_list_tag*)’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format] 11 | __builtin_vprintf (format, list); | ^