| From 3b1d3efb67c749e9882f7316a3b5a6f23052ae84 Mon Sep 17 00:00:00 2001 |
| From: Nathan Chancellor <natechancellor@gmail.com> |
| Date: Thu, 20 Dec 2018 17:23:43 +0100 |
| Subject: drbd: Avoid Clang warning about pointless switch statment |
| |
| [ Upstream commit a52c5a16cf19d8a85831bb1b915a221dd4ffae3c ] |
| |
| There are several warnings from Clang about no case statement matching |
| the constant 0: |
| |
| In file included from drivers/block/drbd/drbd_receiver.c:48: |
| In file included from drivers/block/drbd/drbd_int.h:48: |
| In file included from ./include/linux/drbd_genl_api.h:54: |
| In file included from ./include/linux/genl_magic_struct.h:236: |
| ./include/linux/drbd_genl.h:321:1: warning: no case matching constant |
| switch condition '0' |
| GENL_struct(DRBD_NLA_HELPER, 24, drbd_helper_info, |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| ./include/linux/genl_magic_struct.h:220:10: note: expanded from macro |
| 'GENL_struct' |
| switch (0) { |
| ^ |
| |
| Silence this warning by adding a 'case 0:' statement. Additionally, |
| adjust the alignment of the statements in the ct_assert_unique macro to |
| avoid a checkpatch warning. |
| |
| This solution was originally sent by Arnd Bergmann with a default case |
| statement: https://lore.kernel.org/patchwork/patch/756723/ |
| |
| Link: https://github.com/ClangBuiltLinux/linux/issues/43 |
| Suggested-by: Lars Ellenberg <lars.ellenberg@linbit.com> |
| Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> |
| Signed-off-by: Jens Axboe <axboe@kernel.dk> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| include/linux/genl_magic_struct.h | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/include/linux/genl_magic_struct.h b/include/linux/genl_magic_struct.h |
| index 5972e4969197..eeae59d3ceb7 100644 |
| --- a/include/linux/genl_magic_struct.h |
| +++ b/include/linux/genl_magic_struct.h |
| @@ -191,6 +191,7 @@ static inline void ct_assert_unique_operations(void) |
| { |
| switch (0) { |
| #include GENL_MAGIC_INCLUDE_FILE |
| + case 0: |
| ; |
| } |
| } |
| @@ -209,6 +210,7 @@ static inline void ct_assert_unique_top_level_attributes(void) |
| { |
| switch (0) { |
| #include GENL_MAGIC_INCLUDE_FILE |
| + case 0: |
| ; |
| } |
| } |
| @@ -218,7 +220,8 @@ static inline void ct_assert_unique_top_level_attributes(void) |
| static inline void ct_assert_unique_ ## s_name ## _attributes(void) \ |
| { \ |
| switch (0) { \ |
| - s_fields \ |
| + s_fields \ |
| + case 0: \ |
| ; \ |
| } \ |
| } |
| -- |
| 2.19.1 |
| |