On Tue, Mar 01, 2022 at 10:24:48AM -0800, Andrew Morton wrote: > > lib/vsprintf.c: In function 'va_format': > > lib/vsprintf.c:1759:9: warning: function 'va_format' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] > > 1759 | buf += vsnprintf(buf, end > buf ? end - buf : 0, va_fmt->fmt, va); > > | ^~~ > > I wonder what this means. It means the compiler thinks we might want to add: __attribute__((format(gnu_printf, x, y))) to the function declaration so it can type-check the arguments. 'format (ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)' The 'format' attribute specifies that a function takes 'printf', 'scanf', 'strftime' or 'strfmon' style arguments that should be type-checked against a format string. For example, the declaration: extern int my_printf (void *my_object, const char *my_format, ...) __attribute__ ((format (printf, 2, 3))); causes the compiler to check the arguments in calls to 'my_printf' for consistency with the 'printf' style format string argument 'my_format'. I haven't looked into this at all and have no idea if we should.