Skip to content

Commit d36067d

Browse files
bjackmaningomolnar
authored andcommitted
bug: Hush suggest-attribute=format for __warn_printf()
Recent additions to this function cause GCC 14.3.0 to get excited (W=1) and suggest a missing attribute: lib/bug.c: In function '__warn_printf': lib/bug.c:187:25: error: function '__warn_printf' be a candidate for 'gnu_printf' format attribute [-Werror=suggest-attribute=format] 187 | vprintk(fmt, *args); | ^~~~~~~ Disable the diagnostic locally, following the pattern used for stuff like va_format(). Fixes: 5c47b7f ("bug: Add BUG_FORMAT_ARGS infrastructure") Signed-off-by: Brendan Jackman <jackmanb@google.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Link: https://patch.msgid.link/20251207-warn-printf-gcc-v1-1-b597d612b94b@google.com
1 parent b5e51ef commit d36067d

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

lib/bug.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ struct bug_entry *find_bug(unsigned long bugaddr)
173173
return module_find_bug(bugaddr);
174174
}
175175

176+
__diag_push();
177+
__diag_ignore(GCC, all, "-Wsuggest-attribute=format",
178+
"Not a valid __printf() conversion candidate.");
176179
static void __warn_printf(const char *fmt, struct pt_regs *regs)
177180
{
178181
if (!fmt)
@@ -192,6 +195,7 @@ static void __warn_printf(const char *fmt, struct pt_regs *regs)
192195

193196
printk("%s", fmt);
194197
}
198+
__diag_pop();
195199

196200
static enum bug_trap_type __report_bug(struct bug_entry *bug, unsigned long bugaddr, struct pt_regs *regs)
197201
{

0 commit comments

Comments
 (0)