summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2017-09-21 11:15:32 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2017-11-02 01:34:18 +0100
commit475bf707b958f37844534b7b45c905521c7401a2 (patch)
tree014f8425c525242aa83d16f1261575d5b83ddd5a
parentcb2fcfc0a1da3cfac9094abf1d11c23653937395 (diff)
Mark or fix switch cases that fall through
Now that C++17 introduced a special fallthrough keyword for explicitly tagging switch cases that are supposed to fall through, newer gcc versions also implement a feature request from 2002 to warn about maybe unwanted fall-throughs in switch cases in other languages (like C). For C code, we can either add a gcc specific attribute at the end of the switch case, or use a special comment that gcc checks for, indicating that the fall-through behaviour is indeed intended. This patch adds a "/* fall-through */" comment at the end of various case blocks to silence gcc warnings and in some cases a break, where fall-through was probably not intended. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-rw-r--r--misc-utils/flash_erase.c2
-rw-r--r--misc-utils/mtd_debug.c1
-rw-r--r--nand-utils/nanddump.c1
-rw-r--r--tests/fs-tests/utils/fstest_monitor.c1
-rw-r--r--ubi-utils/ubiblock.c1
5 files changed, 6 insertions, 0 deletions
diff --git a/misc-utils/flash_erase.c b/misc-utils/flash_erase.c
index 6db9fa3..0c9449f 100644
--- a/misc-utils/flash_erase.c
+++ b/misc-utils/flash_erase.c
@@ -155,8 +155,10 @@ int main(int argc, char *argv[])
default:
case 0:
errmsg("no MTD device specified");
+ /* fall-through */
case 1:
errmsg("no start erase block specified");
+ /* fall-through */
case 2:
errmsg("no erase block count specified");
error = 1;
diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c
index d90a968..1fd6871 100644
--- a/misc-utils/mtd_debug.c
+++ b/misc-utils/mtd_debug.c
@@ -272,6 +272,7 @@ static int showinfo(int fd)
break;
case MTD_UBIVOLUME:
printf("MTD_UBIVOLUME");
+ break;
default:
printf("(unknown type - new MTD API maybe?)");
}
diff --git a/nand-utils/nanddump.c b/nand-utils/nanddump.c
index bebb48e..2f167bb 100644
--- a/nand-utils/nanddump.c
+++ b/nand-utils/nanddump.c
@@ -180,6 +180,7 @@ static void process_options(int argc, char * const argv[])
break;
case 'c':
canonical = true;
+ /* fall-through */
case 'p':
pretty_print = true;
break;
diff --git a/tests/fs-tests/utils/fstest_monitor.c b/tests/fs-tests/utils/fstest_monitor.c
index afb951b..db687c1 100644
--- a/tests/fs-tests/utils/fstest_monitor.c
+++ b/tests/fs-tests/utils/fstest_monitor.c
@@ -131,6 +131,7 @@ static int parse_command_line(char *cmdline, int *pargc, char ***pargv)
break;
}
state = 1;
+ /* fall-through */
case 1: /* Not quoted */
if (c == '\\') {
if (*p)
diff --git a/ubi-utils/ubiblock.c b/ubi-utils/ubiblock.c
index 8e36678..71e60b6 100644
--- a/ubi-utils/ubiblock.c
+++ b/ubi-utils/ubiblock.c
@@ -74,6 +74,7 @@ static int parse_opt(int argc, char * const argv[])
switch (key) {
case 'c':
args.create = 1;
+ /* fall-through */
case 'r':
args.node = optarg;
break;