Created
March 20, 2020 05:36
-
-
Save nathanchance/366fe819bf1314eccf3e66d690e40575 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From a0da03c2ac5fb054e483942f5c47890c7a4323f1 Mon Sep 17 00:00:00 2001 | |
From: Nathan Chancellor <natechancellor@gmail.com> | |
Date: Wed, 11 Mar 2020 12:41:21 -0700 | |
Subject: [PATCH] kbuild: Disable -Wpointer-to-enum-cast | |
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> | |
--- | |
scripts/Makefile.extrawarn | 1 + | |
1 file changed, 1 insertion(+) | |
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn | |
index 8d5357053f865..486e135d3e30a 100644 | |
--- a/scripts/Makefile.extrawarn | |
+++ b/scripts/Makefile.extrawarn | |
@@ -72,5 +72,6 @@ KBUILD_CFLAGS += $(call cc-disable-warning, format) | |
KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare) | |
KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length) | |
KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized) | |
+KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast) | |
endif | |
endif | |
-- | |
2.26.0.rc1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment