mirror of
https://github.com/mirror/make.git
synced 2024-12-29 06:20:17 +08:00
* read.c (get_next_mword): [SV 49865] Make fallthrough explicit.
This commit is contained in:
parent
72af7ce8af
commit
80861cce43
58
read.c
58
read.c
@ -2629,7 +2629,7 @@ readline (struct ebuffer *ebuf)
|
||||
static enum make_word_type
|
||||
get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
|
||||
{
|
||||
enum make_word_type wtype = w_bogus;
|
||||
enum make_word_type wtype;
|
||||
char *p = buffer, *beg;
|
||||
char c;
|
||||
|
||||
@ -2639,41 +2639,42 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
|
||||
|
||||
beg = p;
|
||||
c = *(p++);
|
||||
|
||||
/* Look at the start of the word to see if it's simple. */
|
||||
switch (c)
|
||||
{
|
||||
case '\0':
|
||||
wtype = w_eol;
|
||||
break;
|
||||
goto done;
|
||||
|
||||
case ';':
|
||||
wtype = w_semicolon;
|
||||
break;
|
||||
goto done;
|
||||
|
||||
case '=':
|
||||
wtype = w_varassign;
|
||||
break;
|
||||
goto done;
|
||||
|
||||
case ':':
|
||||
wtype = w_colon;
|
||||
switch (*p)
|
||||
if (*p == '=')
|
||||
{
|
||||
case ':':
|
||||
++p;
|
||||
if (p[1] != '=')
|
||||
wtype = w_dcolon;
|
||||
else
|
||||
{
|
||||
wtype = w_varassign;
|
||||
++p;
|
||||
}
|
||||
break;
|
||||
|
||||
case '=':
|
||||
++p;
|
||||
wtype = w_varassign;
|
||||
break;
|
||||
wtype = w_varassign; /* := */
|
||||
}
|
||||
break;
|
||||
else if (*p == ':')
|
||||
{
|
||||
++p;
|
||||
if (p[1] == '=')
|
||||
{
|
||||
++p;
|
||||
wtype = w_varassign; /* ::= */
|
||||
}
|
||||
else
|
||||
wtype = w_dcolon;
|
||||
}
|
||||
else
|
||||
wtype = w_colon;
|
||||
goto done;
|
||||
|
||||
case '+':
|
||||
case '?':
|
||||
@ -2681,20 +2682,19 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
|
||||
if (*p == '=')
|
||||
{
|
||||
++p;
|
||||
wtype = w_varassign;
|
||||
break;
|
||||
wtype = w_varassign; /* += or ?= or != */
|
||||
goto done;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
|
||||
default:
|
||||
if (delim && strchr (delim, c))
|
||||
wtype = w_static;
|
||||
break;
|
||||
{
|
||||
wtype = w_static;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
/* Did we find something? If so, return now. */
|
||||
if (wtype != w_bogus)
|
||||
goto done;
|
||||
|
||||
/* This is some non-operator word. A word consists of the longest
|
||||
string of characters that doesn't contain whitespace, one of [:=#],
|
||||
or [?+!]=, or one of the chars in the DELIM string. */
|
||||
|
Loading…
Reference in New Issue
Block a user