From b2be350e700b2900626f0977c47dddefdf617cfd Mon Sep 17 00:00:00 2001 From: Toomas Soome Date: Sat, 10 Mar 2018 22:17:18 -0800 Subject: [PATCH] 9216 awk: this statement may fall through Reviewed by: Andy Fiddaman Reviewed by: Jason King Reviewed by: C Fraire Approved by: Joshua M. Clulow --- usr/src/cmd/awk/b.c | 3 +-- usr/src/cmd/awk_xpg4/awk.h | 6 ++---- usr/src/cmd/awk_xpg4/awk1.c | 16 +++++++++------- usr/src/cmd/awk_xpg4/awk3.c | 9 +++------ usr/src/cmd/awk_xpg4/awk4.c | 5 ++--- 5 files changed, 17 insertions(+), 22 deletions(-) diff --git a/usr/src/cmd/awk/b.c b/usr/src/cmd/awk/b.c index e1bed57ab1..9caee4e9d3 100644 --- a/usr/src/cmd/awk/b.c +++ b/usr/src/cmd/awk/b.c @@ -28,8 +28,6 @@ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ -#pragma ident "%Z%%M% %I% %E% SMI" - #define DEBUG #include "awk.h" @@ -639,6 +637,7 @@ primary(void) ERROR "syntax error in regular expression %s at %s", lastre, prestr FATAL; } + /* FALLTHROUGH */ default: ERROR "illegal primary in regular expression %s at %s", lastre, prestr FATAL; diff --git a/usr/src/cmd/awk_xpg4/awk.h b/usr/src/cmd/awk_xpg4/awk.h index 91e07c884c..595a2a029f 100644 --- a/usr/src/cmd/awk_xpg4/awk.h +++ b/usr/src/cmd/awk_xpg4/awk.h @@ -34,8 +34,6 @@ * */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -275,7 +273,7 @@ int yyparse(void); #pragma aux awkperr aborts; #endif void yyerror(char *msg, ...); -void awkerr(char *fmt, ...); +void awkerr(char *fmt, ...) __NORETURN; void awkperr(char *fmt, ...); void uexit(NODE *); int yylex(void); @@ -286,7 +284,7 @@ wchar_t *erealloc(wchar_t *, unsigned); /* Global functions -- awk2.c */ void awk(void); void dobegin(void); -void doend(int status); +void doend(int status) __NORETURN; int nextrecord(wchar_t *buf, FILE *fp); wchar_t *defrecord(wchar_t *bp, int lim, FILE *fp); wchar_t *charrecord(wchar_t *bp, int lim, FILE *fp); diff --git a/usr/src/cmd/awk_xpg4/awk1.c b/usr/src/cmd/awk_xpg4/awk1.c index 0d54ebde58..bed7998fbb 100644 --- a/usr/src/cmd/awk_xpg4/awk1.c +++ b/usr/src/cmd/awk_xpg4/awk1.c @@ -67,7 +67,7 @@ static void awkvarinit(void); static wint_t lexgetc(void); static void lexungetc(wint_t c); static size_t lexescape(wint_t endc, int regx, int cmd_line_operand); -static void awkierr(int perr, char *fmt, va_list ap); +static void awkierr(int perr, char *fmt, va_list ap) __NORETURN; static int usage(void); void strescape(wchar_t *str); static const char *toprint(wint_t); @@ -544,7 +544,7 @@ yylex() c = ';'; break; } - /*FALLTHRU*/ + /* FALLTHROUGH */ case AND: case OR: case COMMA: @@ -557,6 +557,7 @@ yylex() case '}': if (nbrace != 0) continue; + /* FALLTHROUGH */ default: c = ';'; @@ -678,7 +679,7 @@ yylex() if (!catterm || lexlast != CONSTANT || wasfield) break; - /*FALLTHRU*/ + /* FALLTHROUGH */ case UFUNC: case FUNC: case GETLINE: @@ -695,10 +696,10 @@ yylex() case '}': if (nbrace == 0) savetoken = ';'; - /*FALLTHRU*/ + /* FALLTHROUGH */ case ';': inprint = 0; - /*FALLTHRU*/ + /* FALLTHROUGH */ default: if (c == DEFFUNC) isfuncdef = 1; @@ -795,6 +796,7 @@ lexid(wint_t c) case PRINT: case PRINTF: ++inprint; + /* FALLTHROUGH */ default: return ((int)np->n_keywtype); } @@ -831,7 +833,7 @@ do_funparm: needsplit = 1; } else if (np == varENVIRON) needenviron = 1; - /*FALLTHRU*/ + /* FALLTHROUGH */ case PARM: return (VAR); @@ -840,7 +842,7 @@ do_funparm: * It is ok to redefine functions as parameters */ if (funparm) goto do_funparm; - /*FALLTHRU*/ + /* FALLTHROUGH */ case FUNC: case GETLINE: /* diff --git a/usr/src/cmd/awk_xpg4/awk3.c b/usr/src/cmd/awk_xpg4/awk3.c index 584a54e561..ca72a82ab0 100644 --- a/usr/src/cmd/awk_xpg4/awk3.c +++ b/usr/src/cmd/awk_xpg4/awk3.c @@ -29,8 +29,6 @@ * Based on MKS awk(1) ported to be /usr/xpg4/bin/awk with POSIX/XCU4 changes */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include "awk.h" #include "y.tab.h" @@ -250,7 +248,7 @@ top: switch (left->n_type) { case INDEX: left = exprreduce(left); - /*FALLTHRU*/ + /* FALLTHROUGH */ case VAR: return (nassign(left, right)); @@ -701,7 +699,7 @@ action(NODE *wp) case NEXT: loopexit = NEXT; - /*FALLTHRU*/ + /* FALLTHROUGH */ case BREAK: case CONTINUE: return (np->n_type); @@ -748,6 +746,7 @@ action(NODE *wp) if (isstring(l->n_flags) && l->n_string == _null) break; + /* FALLTHROUGH */ default: awkerr(gettext( "may delete only array element or array")); @@ -1224,11 +1223,9 @@ do_asn_op: case ARRAY: awkerr(badarray, np->n_name); - /*FALLTHRU*/ case UFUNC: awkerr(varnotfunc, np->n_name); - /*FALLTHRU*/ default: awkerr(gettext("panic: exprreduce(%d)"), t); /* NOTREACHED */ diff --git a/usr/src/cmd/awk_xpg4/awk4.c b/usr/src/cmd/awk_xpg4/awk4.c index 96c168bbf1..96ec3d26ec 100644 --- a/usr/src/cmd/awk_xpg4/awk4.c +++ b/usr/src/cmd/awk_xpg4/awk4.c @@ -30,8 +30,6 @@ * Based on MKS awk(1) ported to be /usr/xpg4/bin/awk with POSIX/XCU4 changes */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include "awk.h" #include "y.tab.h" #include @@ -386,10 +384,11 @@ f_split(NODE *np) case VAR: if (isstring(tnp->n_flags) && tnp->n_string==_null) break; + /* FALLTHROUGH */ + default: awkerr(gettext( "second parameter to \"split\" must be an array")); - /*NOTREACHED*/ } /* * If an argument has been passed in to be used as the -- 2.11.4.GIT