* [PATCH bpf-next v2 5/8] compiler-clang.h: Add __diag infrastructure for clang
[not found] <20220303045029.2645297-1-memxor@gmail.com>
@ 2022-03-03 4:50 ` Kumar Kartikeya Dwivedi
2022-03-03 18:14 ` Nathan Chancellor
0 siblings, 1 reply; 2+ messages in thread
From: Kumar Kartikeya Dwivedi @ 2022-03-03 4:50 UTC (permalink / raw)
To: bpf
Cc: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
Nathan Chancellor, Nick Desaulniers, llvm
From: Nathan Chancellor <nathan@kernel.org>
Add __diag macros similar to those in compiler-gcc.h, so that warnings
that need to be adjusted for specific cases but not globally can be
ignored for LLVM compilation mode as well.
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: llvm@lists.linux.dev
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---
include/linux/compiler-clang.h | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h
index 3c4de9b6c6e3..f1aa41d520bd 100644
--- a/include/linux/compiler-clang.h
+++ b/include/linux/compiler-clang.h
@@ -68,3 +68,25 @@
#define __nocfi __attribute__((__no_sanitize__("cfi")))
#define __cficanonical __attribute__((__cfi_canonical_jump_table__))
+
+/*
+ * Turn individual warnings and errors on and off locally, depending
+ * on version.
+ */
+#define __diag_clang(version, severity, s) \
+ __diag_clang_ ## version(__diag_clang_ ## severity s)
+
+/* Severity used in pragma directives */
+#define __diag_clang_ignore ignored
+#define __diag_clang_warn warning
+#define __diag_clang_error error
+
+#define __diag_str1(s) #s
+#define __diag_str(s) __diag_str1(s)
+#define __diag(s) _Pragma(__diag_str(clang diagnostic s))
+
+#if CONFIG_CLANG_VERSION >= 110000
+#define __diag_clang_11(s) __diag(s)
+#else
+#define __diag_clang_11(s)
+#endif
--
2.35.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH bpf-next v2 5/8] compiler-clang.h: Add __diag infrastructure for clang
2022-03-03 4:50 ` [PATCH bpf-next v2 5/8] compiler-clang.h: Add __diag infrastructure for clang Kumar Kartikeya Dwivedi
@ 2022-03-03 18:14 ` Nathan Chancellor
0 siblings, 0 replies; 2+ messages in thread
From: Nathan Chancellor @ 2022-03-03 18:14 UTC (permalink / raw)
To: Kumar Kartikeya Dwivedi
Cc: bpf, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
Nick Desaulniers, llvm
Hi Kumar,
Thanks for sending this along!
On Thu, Mar 03, 2022 at 10:20:26AM +0530, Kumar Kartikeya Dwivedi wrote:
> From: Nathan Chancellor <nathan@kernel.org>
>
> Add __diag macros similar to those in compiler-gcc.h, so that warnings
> that need to be adjusted for specific cases but not globally can be
> ignored for LLVM compilation mode as well.
I would word this last sentence as:
"ignored when building with clang."
Technically speaking, LLVM is not the one emitting the warnings, clang
is :) this is useful with LLVM=1 or CC=clang.
> Cc: Nathan Chancellor <nathan@kernel.org>
> Cc: Nick Desaulniers <ndesaulniers@google.com>
> Cc: llvm@lists.linux.dev
> Signed-off-by: Nathan Chancellor <nathan@kernel.org>
You should add your signed-off-by here to notate that you have touched
the patch per Documentation/process/submitting-patches.rst. It is also
courteous to note that you wrote the commit message, something along the
lines of:
"[Kumar: Wrote commit message]
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>"
Regardless, this looks good to me with the context of the other two
patches:
https://lore.kernel.org/r/20220303045029.2645297-7-memxor@gmail.com/
https://lore.kernel.org/r/20220303045029.2645297-8-memxor@gmail.com/
Cheers,
Nathan
> ---
> include/linux/compiler-clang.h | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h
> index 3c4de9b6c6e3..f1aa41d520bd 100644
> --- a/include/linux/compiler-clang.h
> +++ b/include/linux/compiler-clang.h
> @@ -68,3 +68,25 @@
>
> #define __nocfi __attribute__((__no_sanitize__("cfi")))
> #define __cficanonical __attribute__((__cfi_canonical_jump_table__))
> +
> +/*
> + * Turn individual warnings and errors on and off locally, depending
> + * on version.
> + */
> +#define __diag_clang(version, severity, s) \
> + __diag_clang_ ## version(__diag_clang_ ## severity s)
> +
> +/* Severity used in pragma directives */
> +#define __diag_clang_ignore ignored
> +#define __diag_clang_warn warning
> +#define __diag_clang_error error
> +
> +#define __diag_str1(s) #s
> +#define __diag_str(s) __diag_str1(s)
> +#define __diag(s) _Pragma(__diag_str(clang diagnostic s))
> +
> +#if CONFIG_CLANG_VERSION >= 110000
> +#define __diag_clang_11(s) __diag(s)
> +#else
> +#define __diag_clang_11(s)
> +#endif
> --
> 2.35.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-03-03 18:14 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220303045029.2645297-1-memxor@gmail.com>
2022-03-03 4:50 ` [PATCH bpf-next v2 5/8] compiler-clang.h: Add __diag infrastructure for clang Kumar Kartikeya Dwivedi
2022-03-03 18:14 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox