[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] regexec: fix unintentinal fallthrough warning with GCC7
From: |
Andrei Borzenkov |
Subject: |
[PATCH] regexec: fix unintentinal fallthrough warning with GCC7 |
Date: |
Thu, 23 Mar 2017 19:16:27 +0300 |
[ 104s] In file included from ../../grub-core/gnulib/regex.c:72:0:
[ 104s] ../../grub-core/gnulib/regexec.c: In function 'check_node_accept':
[ 104s] ../../grub-core/gnulib/regexec.c:4100:10: error: this statement may
fall through [-Werror=implicit-fallthrough=]
[ 104s] if (ch >= ASCII_CHARS)
[ 104s] ^
[ 104s] ../../grub-core/gnulib/regexec.c:4104:5: note: here
[ 104s] case OP_PERIOD:
[ 104s] ^~~~
The code in question does have FALLTHROUGH annotation; unfortunately GCC7
ignores it, because it is separated from case statement by #endif.
The patch fixes it by using new attribute that is honored even inside #ifdef'ed
code.
---
lib/regexec.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/regexec.c b/lib/regexec.c
index ef52b24..4588e13 100644
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -4078,6 +4078,9 @@ check_node_accept (const re_match_context_t *mctx, const
re_token_t *node,
case OP_UTF8_PERIOD:
if (ch >= ASCII_CHARS)
return false;
+#if defined __GNUC__ && __GNUC__ >= 7
+ __attribute__ ((fallthrough));
+#endif
/* FALLTHROUGH */
#endif
case OP_PERIOD:
--
tg: (bd78ca3..) u/regexec-gcc7-fallthrough (depends on: master)
- [PATCH] regexec: fix unintentinal fallthrough warning with GCC7,
Andrei Borzenkov <=