Cygwin: Add 'fallthrough' pseudo keyword for switch/case use
This patch has been inspired by the Linux kernel patch 294f69e662d1 compiler_attributes.h: Add 'fallthrough' pseudo keyword for switch/case use written by Joe Perches <joe AT perches DOT com> based on an idea from Dan Carpenter <dan DOT carpenter AT oracle DOT com>. The following text is from the original log message: Reserve the pseudo keyword 'fallthrough' for the ability to convert the various case block /* fallthrough */ style comments to appear to be an actual reserved word with the same gcc case block missing fallthrough warning capability. All switch/case blocks now should end in one of: break; fallthrough; goto <label>; return [expression]; continue; In C mode, GCC supports the __fallthrough__ attribute since 7.1, the same time the warning and the comment parsing were introduced. Cygwin-only: add an explicit -Wimplicit-fallthrough=5 to the build flags.
This commit is contained in:
@ -282,7 +282,7 @@ b64_pton(char const *src, unsigned char *target, size_t targsize)
|
||||
return (-1);
|
||||
ch = *src++; /* Skip the = */
|
||||
/* Fall through to "single trailing =" case. */
|
||||
/* FALLTHROUGH */
|
||||
fallthrough;
|
||||
|
||||
case 3: /* Valid, means two bytes of info */
|
||||
/*
|
||||
|
@ -193,7 +193,7 @@ fnmatch1(const char *pattern, const char *string, const char *stringstart,
|
||||
return (FNM_NOMATCH);
|
||||
pattern += pclen;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
fallthrough;
|
||||
default:
|
||||
norm:
|
||||
string += sclen;
|
||||
|
@ -88,7 +88,7 @@ ftw(const char *path, int (*fn)(const char *, const struct stat *, int),
|
||||
break;
|
||||
case FTS_DC:
|
||||
errno = ELOOP;
|
||||
/* FALLTHROUGH */
|
||||
fallthrough;
|
||||
default:
|
||||
error = -1;
|
||||
goto done;
|
||||
|
@ -81,6 +81,7 @@ static pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;
|
||||
#else
|
||||
|
||||
#include "../locale/setlocale.h"
|
||||
#include "winsup.h"
|
||||
#define SIZE_T_MAX __SIZE_MAX__
|
||||
#define _close close
|
||||
#define _open open
|
||||
@ -233,7 +234,7 @@ catopen(const char *name, int type)
|
||||
break;
|
||||
case '%':
|
||||
++nlspath;
|
||||
/* FALLTHROUGH */
|
||||
fallthrough;
|
||||
default:
|
||||
if (pathP - path >=
|
||||
sizeof(path) - 1)
|
||||
|
@ -105,7 +105,7 @@ nftw(const char *path, int (*fn)(const char *, const struct stat *, int,
|
||||
break;
|
||||
case FTS_DC:
|
||||
errno = ELOOP;
|
||||
/* FALLTHROUGH */
|
||||
fallthrough;
|
||||
default:
|
||||
error = -1;
|
||||
goto done;
|
||||
|
@ -179,7 +179,7 @@ next:
|
||||
|
||||
case DEFAULT:
|
||||
usedefault = 1;
|
||||
/* FALL THROUGH */
|
||||
fallthrough;
|
||||
|
||||
case MACH:
|
||||
if (!usedefault) {
|
||||
|
@ -524,7 +524,7 @@ literal:
|
||||
|
||||
case 'k': /* The hour (24-hour clock representation). */
|
||||
LEGAL_ALT(0);
|
||||
/* FALLTHROUGH */
|
||||
fallthrough;
|
||||
case 'H':
|
||||
LEGAL_ALT(ALT_O);
|
||||
bp = conv_num(bp, &tm->tm_hour, 0, 23, ALT_DIGITS);
|
||||
@ -532,7 +532,7 @@ literal:
|
||||
|
||||
case 'l': /* The hour (12-hour clock representation). */
|
||||
LEGAL_ALT(0);
|
||||
/* FALLTHROUGH */
|
||||
fallthrough;
|
||||
case 'I':
|
||||
LEGAL_ALT(ALT_O);
|
||||
bp = conv_num(bp, &tm->tm_hour, 1, 12, ALT_DIGITS);
|
||||
|
Reference in New Issue
Block a user