aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.com>2025-08-04 14:15:14 +0200
committerPetr Mladek <pmladek@suse.com>2025-08-04 14:15:14 +0200
commit3bfd34ed362b0a8aa96b54a582f0a32786ceec43 (patch)
tree8fae435ee2b88f8cef4990481729175134cd5bc9
parentMerge tag 'printk-for-6.15-2' of git://git.kernel.org/pub/scm/linux/kernel/gi... (diff)
parentvsprintf: Use __diag macros to disable '-Wsuggest-attribute=format' (diff)
downloadlinux-3bfd34ed362b0a8aa96b54a582f0a32786ceec43.tar.gz
linux-3bfd34ed362b0a8aa96b54a582f0a32786ceec43.zip
Merge branch 'for-6.15-printf-attribute' into for-linus
-rw-r--r--include/linux/compiler-gcc.h2
-rw-r--r--lib/vsprintf.c9
2 files changed, 6 insertions, 5 deletions
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 32048052c64a..5d07c469b571 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -127,6 +127,8 @@
#define __diag_GCC_8(s)
#endif
+#define __diag_GCC_all(s) __diag(s)
+
#define __diag_ignore_all(option, comment) \
__diag(__diag_GCC_ignore option)
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 01699852f30c..b47464c7af5d 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -1699,10 +1699,9 @@ char *escaped_string(char *buf, char *end, u8 *addr, struct printf_spec spec,
return buf;
}
-#pragma GCC diagnostic push
-#ifndef __clang__
-#pragma GCC diagnostic ignored "-Wsuggest-attribute=format"
-#endif
+__diag_push();
+__diag_ignore(GCC, all, "-Wsuggest-attribute=format",
+ "Not a valid __printf() conversion candidate.");
static char *va_format(char *buf, char *end, struct va_format *va_fmt,
struct printf_spec spec)
{
@@ -1717,7 +1716,7 @@ static char *va_format(char *buf, char *end, struct va_format *va_fmt,
return buf;
}
-#pragma GCC diagnostic pop
+__diag_pop();
static noinline_for_stack
char *uuid_string(char *buf, char *end, const u8 *addr,