| From 82f2bc2fcc0160d6f82dd1ac64518ae0a4dd183f Mon Sep 17 00:00:00 2001 |
| From: Nathan Chancellor <natechancellor@gmail.com> |
| Date: Wed, 11 Mar 2020 12:41:21 -0700 |
| Subject: kbuild: Disable -Wpointer-to-enum-cast |
| |
| From: Nathan Chancellor <natechancellor@gmail.com> |
| |
| commit 82f2bc2fcc0160d6f82dd1ac64518ae0a4dd183f upstream. |
| |
| Clang's -Wpointer-to-int-cast deviates from GCC in that it warns when |
| casting to enums. The kernel does this in certain places, such as device |
| tree matches to set the version of the device being used, which allows |
| the kernel to avoid using a gigantic union. |
| |
| https://elixir.bootlin.com/linux/v5.5.8/source/drivers/ata/ahci_brcm.c#L428 |
| https://elixir.bootlin.com/linux/v5.5.8/source/drivers/ata/ahci_brcm.c#L402 |
| https://elixir.bootlin.com/linux/v5.5.8/source/include/linux/mod_devicetable.h#L264 |
| |
| To avoid a ton of false positive warnings, disable this particular part |
| of the warning, which has been split off into a separate diagnostic so |
| that the entire warning does not need to be turned off for clang. It |
| will be visible under W=1 in case people want to go about fixing these |
| easily and enabling the warning treewide. |
| |
| Cc: stable@vger.kernel.org |
| Link: https://github.com/ClangBuiltLinux/linux/issues/887 |
| Link: https://github.com/llvm/llvm-project/commit/2a41b31fcdfcb67ab7038fc2ffb606fd50b83a84 |
| Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> |
| Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| scripts/Makefile.extrawarn | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/scripts/Makefile.extrawarn |
| +++ b/scripts/Makefile.extrawarn |
| @@ -48,6 +48,7 @@ KBUILD_CFLAGS += -Wno-initializer-overri |
| KBUILD_CFLAGS += -Wno-format |
| KBUILD_CFLAGS += -Wno-sign-compare |
| KBUILD_CFLAGS += -Wno-format-zero-length |
| +KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast) |
| endif |
| |
| endif |