Follow the Linux kernel's lead on "fallthrough"

The pseudo keyword 'fallthrough' is defined such that case statement
blocks must end with any of these keywords:
 * break;
 * fallthrough;
 * continue;
 * goto <label>;
 * return [expression];
 *
 *  gcc: https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html#Statement-Attributes

The macro is defined either as

  __attribute__((__fallthrough__))

or as

  do {} while (0)  /* fallthrough */

not including the semicolon.

This change implements the Linux kernel style and updates several locations
where "/*fallthrough*/ and /* FALLTHROUGH */ were not previously replaced.

Externally imported code such as libedit, libtommath and sqlite are
restored to their unaltered state.

Change-Id: I69db8167b0d5884f55d96d72de3059a0235a1ba3
This commit is contained in:
Jeffrey Altman
2022-01-21 10:05:59 -05:00
committed by Jeffrey Altman
parent 02bd267fbd
commit 04527412e3
22 changed files with 39 additions and 62 deletions

View File

@@ -205,22 +205,18 @@ wind_ucs4utf8(const uint32_t *in, size_t in_len, char *out, size_t *out_len)
case 4:
out[3] = (ch | 0x80) & 0xbf;
ch = ch >> 6;
/* FALLTHROUGH */
fallthrough
fallthrough;
case 3:
out[2] = (ch | 0x80) & 0xbf;
ch = ch >> 6;
/* FALLTHROUGH */
fallthrough
fallthrough;
case 2:
out[1] = (ch | 0x80) & 0xbf;
ch = ch >> 6;
/* FALLTHROUGH */
fallthrough
fallthrough;
case 1:
out[0] = ch | first_char[len - 1];
/* FALLTHROUGH */
fallthrough
fallthrough;
default:
break;
}
@@ -490,17 +486,14 @@ wind_ucs2utf8(const uint16_t *in, size_t in_len, char *out, size_t *out_len)
case 3:
out[2] = (ch | 0x80) & 0xbf;
ch = ch >> 6;
/* FALLTHROUGH */
fallthrough
fallthrough;
case 2:
out[1] = (ch | 0x80) & 0xbf;
ch = ch >> 6;
/* FALLTHROUGH */
fallthrough
fallthrough;
case 1:
out[0] = ch | first_char[len - 1];
/* FALLTHROUGH */
fallthrough
fallthrough;
default:
break;
}