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);
| ^