Re: [PATCH] kbuild: clang: Disable -Wunused-const-variable warnings

From: Masahiro Yamada
Date: Fri Feb 02 2018 - 11:02:05 EST


2018-01-30 2:08 GMT+09:00 Prasad Sodagudi <psodagud@xxxxxxxxxxxxxx>:
> Currently -Wunused-variable warnings are disabled with
> clang and with gcc -Wunused-variable warnings are
> enabled, with this setting all unused local variables
> would be warned in clang as well.
>
> Disable -Wunused-const-variable warnings instead of
> disabling -Wunused-variable warnings, So that in both
> clang and GCC -Wunused-const-variable gets disabled.
>
> Signed-off-by: Prasad Sodagudi <psodagud@xxxxxxxxxxxxxx>

The code is OK, but I'd like to make the log even clearer.


The commit subject
"kbuild: clang: Disable -Wunused-const-variable warnings"
sounds confusing.

-Wunused-const-variable was already disabled for clang
because it was implied by Wno-unused-variable.


So, this patch is effectively enabling -Wunused-variable, right?


How about something like follows?

------------------------->8---------------------------------------
kbuild: clang: disable unused variable warnings only when constant

Currently, GCC disables -Wunused-const-variable, but not
-Wunused-variable, so warns unused variables if they are
non-constant.

While, Clang does not warn unused variables at all regardless of
the const qualifier because -Wno-unused-const-variable is implied
by the stronger option -Wno-unused-variable.

Disable -Wunused-const-variable instead of -Wunused-variable so that
GCC and Clang work in the same way.
--------------------------->8--------------------------------------


If it is tedious to resend, shall I reword the log locally?
Let me your thought.







> ---
> Makefile | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 339397b..4b6c8e2 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -698,7 +698,6 @@ KBUILD_CFLAGS += $(stackp-flag)
>
> ifeq ($(cc-name),clang)
> KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
> -KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
> KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
> KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
> KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
> @@ -716,9 +715,9 @@ else
> # These warnings generated too much noise in a regular build.
> # Use make W=1 to enable them (see scripts/Makefile.extrawarn)
> KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
> -KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
> endif
>
> +KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
> ifdef CONFIG_FRAME_POINTER
> KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
> else
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project
>



--
Best Regards
Masahiro Yamada