misc: fix ggc-7 fallthrough warnings
(Original patch and commit message edited by Rudi.) gcc-7 adds -Wimplicit-fallthrough=3 to our default flag -Wextra. This warning can be silenced by using comment /* fallthrough */ which is also recognized by other tools like coverity. There are also other valid comments (see man gcc-7) but we consolidate this style now. We could have also used __attribute__((fallthrough)) but the comment looks nice and does not need to be ifdef'ed for compatibility. Reference: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=7652 Reference: https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/ Reviewed-by: Ruediger Meier <ruediger.meier@ga-group.nl> Suggested-by: Karel Zak <kzak@redhat.com> Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
11e904f02c
commit
b1557fe981
|
@ -123,7 +123,7 @@ struct entry {
|
|||
#define CRAMFS_OFFSET_WIDTH 26
|
||||
|
||||
/* Input status of 0 to print help and exit without an error. */
|
||||
static void
|
||||
static void __attribute__((__noreturn__))
|
||||
usage(int status) {
|
||||
FILE *stream = status ? stderr : stdout;
|
||||
|
||||
|
|
|
@ -830,7 +830,7 @@ static void process_wtmp_file(const struct last_control *ctl,
|
|||
c = whydown;
|
||||
quit = list(ctl, &ut, lastboot, c);
|
||||
}
|
||||
/* FALLTHRU */
|
||||
/* fallthrough */
|
||||
|
||||
case DEAD_PROCESS:
|
||||
/*
|
||||
|
|
|
@ -899,6 +899,7 @@ su_main (int argc, char **argv, int mode)
|
|||
/* fallthrough if -u <user> is not specified, then follow
|
||||
* traditional su(1) behavior
|
||||
*/
|
||||
/* fallthrough */
|
||||
case SU_MODE:
|
||||
if (optind < argc)
|
||||
new_user = argv[optind++];
|
||||
|
|
|
@ -267,11 +267,11 @@ static void tcfinal(struct console *con)
|
|||
break;
|
||||
case 1: /* odd parity */
|
||||
tio->c_cflag |= PARODD;
|
||||
/* fall through */
|
||||
/* fallthrough */
|
||||
case 2: /* even parity */
|
||||
tio->c_cflag |= PARENB;
|
||||
tio->c_iflag |= (INPCK | ISTRIP);
|
||||
/* fall through */
|
||||
/* fallthrough */
|
||||
case (1 | 2): /* no parity bit */
|
||||
tio->c_cflag &= ~CSIZE;
|
||||
tio->c_cflag |= CS7;
|
||||
|
@ -971,7 +971,6 @@ int main(int argc, char **argv)
|
|||
switch ((con->pid = fork())) {
|
||||
case 0:
|
||||
mask_signal(SIGCHLD, SIG_DFL, NULL);
|
||||
/* fall through */
|
||||
nofork:
|
||||
setup(con);
|
||||
while (1) {
|
||||
|
@ -1024,7 +1023,7 @@ int main(int argc, char **argv)
|
|||
exit(0);
|
||||
case -1:
|
||||
warn(_("fork failed"));
|
||||
/* fall through */
|
||||
/* fallthrough */
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -431,7 +431,7 @@ int main(int argc, char **argv)
|
|||
ctl.req.day = strtos32_or_err(*argv++, _("illegal day value"));
|
||||
if (ctl.req.day < 1 || DAYS_IN_MONTH < ctl.req.day)
|
||||
errx(EXIT_FAILURE, _("illegal day value: use 1-%d"), DAYS_IN_MONTH);
|
||||
/* FALLTHROUGH */
|
||||
/* fallthrough */
|
||||
case 2:
|
||||
if (isdigit(**argv))
|
||||
ctl.req.month = strtos32_or_err(*argv++, _("illegal month value: use 1-12"));
|
||||
|
@ -443,7 +443,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
if (ctl.req.month < 1 || MONTHS_IN_YEAR < ctl.req.month)
|
||||
errx(EXIT_FAILURE, _("illegal month value: use 1-12"));
|
||||
/* FALLTHROUGH */
|
||||
/* fallthrough */
|
||||
case 1:
|
||||
ctl.req.year = strtos32_or_err(*argv++, _("illegal year value"));
|
||||
if (ctl.req.year < SMALLEST_YEAR)
|
||||
|
|
|
@ -189,7 +189,6 @@ int main(int argc, char **argv)
|
|||
return EXIT_SUCCESS;
|
||||
case 'h':
|
||||
usage(stdout);
|
||||
/* fallthrough */
|
||||
default:
|
||||
errtryhelp(EXIT_FAILURE);
|
||||
}
|
||||
|
|
|
@ -305,7 +305,7 @@ int main(int argc, char *argv[])
|
|||
if (open_flags & O_RDWR)
|
||||
break;
|
||||
}
|
||||
/* go through */
|
||||
/* fallthrough */
|
||||
default:
|
||||
/* Other errors */
|
||||
if (filename)
|
||||
|
|
|
@ -1209,7 +1209,8 @@ static void out_version(void)
|
|||
* fmt, ... ), show a usage information and terminate the program
|
||||
* afterwards.
|
||||
*/
|
||||
static void usage(const struct hwclock_control *ctl, const char *fmt, ...)
|
||||
static void __attribute__((__noreturn__))
|
||||
usage(const struct hwclock_control *ctl, const char *fmt, ...)
|
||||
{
|
||||
FILE *usageto;
|
||||
va_list ap;
|
||||
|
|
|
@ -346,6 +346,7 @@ int main(int argc, char **argv)
|
|||
ret++;
|
||||
break;
|
||||
}
|
||||
/* fallthrough */
|
||||
case 'm':
|
||||
if (!iskey)
|
||||
id = strtos32_or_err(optarg, _("failed to parse argument"));
|
||||
|
@ -359,6 +360,7 @@ int main(int argc, char **argv)
|
|||
ret++;
|
||||
break;
|
||||
}
|
||||
/* fallthrough */
|
||||
case 'q':
|
||||
if (!iskey)
|
||||
id = strtos32_or_err(optarg, _("failed to parse argument"));
|
||||
|
@ -372,6 +374,7 @@ int main(int argc, char **argv)
|
|||
ret++;
|
||||
break;
|
||||
}
|
||||
/* fallthrough */
|
||||
case 's':
|
||||
if (!iskey)
|
||||
id = strtos32_or_err(optarg, _("failed to parse argument"));
|
||||
|
|
|
@ -65,7 +65,7 @@ static struct namespace_file {
|
|||
{ .nstype = 0, .name = NULL, .fd = -1 }
|
||||
};
|
||||
|
||||
static void usage(int status)
|
||||
static void __attribute__((__noreturn__)) usage(int status)
|
||||
{
|
||||
FILE *out = status == EXIT_SUCCESS ? stdout : stderr;
|
||||
|
||||
|
|
|
@ -238,7 +238,7 @@ static void bind_ns_files_from_child(pid_t *child, int fds[2])
|
|||
}
|
||||
}
|
||||
|
||||
static void usage(int status)
|
||||
static void __attribute__((__noreturn__)) usage(int status)
|
||||
{
|
||||
FILE *out = status == EXIT_SUCCESS ? stdout : stderr;
|
||||
|
||||
|
|
|
@ -2041,12 +2041,12 @@ static void termio_final(struct options *op, struct termios *tp, struct chardata
|
|||
case 1:
|
||||
/* odd parity */
|
||||
tp->c_cflag |= PARODD;
|
||||
/* do not break */
|
||||
/* fallthrough */
|
||||
case 2:
|
||||
/* even parity */
|
||||
tp->c_cflag |= PARENB;
|
||||
tp->c_iflag |= INPCK | ISTRIP;
|
||||
/* do not break */
|
||||
/* fallthrough */
|
||||
case (1 | 2):
|
||||
/* no parity bit */
|
||||
tp->c_cflag &= ~CSIZE;
|
||||
|
|
|
@ -351,7 +351,7 @@ isint: cs[3] = '\0';
|
|||
case 'A':
|
||||
endfu = fu;
|
||||
fu->flags |= F_IGNORE;
|
||||
/* FALLTHROUGH */
|
||||
/* fallthrough */
|
||||
case 'a':
|
||||
pr->flags = F_ADDRESS;
|
||||
++p2;
|
||||
|
|
|
@ -1270,7 +1270,7 @@ int command(char *filename, register FILE *f)
|
|||
break;
|
||||
}
|
||||
lastp++;
|
||||
/* fall through */
|
||||
/* fallthrough */
|
||||
case '/':
|
||||
if (nlines == 0)
|
||||
nlines++;
|
||||
|
@ -1368,7 +1368,7 @@ int command(char *filename, register FILE *f)
|
|||
(char *)0);
|
||||
break;
|
||||
}
|
||||
/* fall through */
|
||||
/* fallthrough */
|
||||
default:
|
||||
if (dum_opt) {
|
||||
kill_line();
|
||||
|
@ -2023,6 +2023,7 @@ int expand(char **outbuf, char *inbuf)
|
|||
*outstr++ = *inpstr++;
|
||||
break;
|
||||
}
|
||||
/* fallthrough */
|
||||
default:
|
||||
*outstr++ = c;
|
||||
}
|
||||
|
|
|
@ -659,7 +659,7 @@ static void prompt(long long pageno)
|
|||
break;
|
||||
case SEARCH_FIN:
|
||||
state = SEARCH;
|
||||
/* FALLTHRU */
|
||||
/* fallthrough */
|
||||
case SEARCH:
|
||||
if (cmd.cmdline[cmd.cmdlen - 1] == '\\') {
|
||||
escape = 1;
|
||||
|
@ -738,7 +738,7 @@ static void prompt(long long pageno)
|
|||
continue;
|
||||
}
|
||||
state = COUNT;
|
||||
/* FALLTHRU */
|
||||
/* fallthrough */
|
||||
case COUNT:
|
||||
break;
|
||||
case ADDON_FIN:
|
||||
|
|
|
@ -208,7 +208,7 @@ int main(int argc, char **argv)
|
|||
|
||||
default:
|
||||
warnx(_("trouble reading terminfo"));
|
||||
/* fall through to ... */
|
||||
/* fallthrough */
|
||||
|
||||
case 0:
|
||||
if (tflag)
|
||||
|
@ -317,7 +317,7 @@ static void filter(FILE *f)
|
|||
}
|
||||
obuf[col].c_char = '_';
|
||||
obuf[col].c_width = 1;
|
||||
/* fall through */
|
||||
/* fallthrough */
|
||||
case ' ':
|
||||
setcol(col + 1);
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue