Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Modules/_ctypes/_ctypes.c
Original file line number Diff line number Diff line change
Expand Up @@ -3675,7 +3675,7 @@ _build_callargs(PyCFuncPtrObject *self, PyObject *argtypes,
case (PARAMFLAG_FIN | PARAMFLAG_FOUT):
*pinoutmask |= (1 << i); /* mark as inout arg */
(*pnumretvals)++;
/* fall through to PARAMFLAG_FIN... */
/* fall through */
case 0:
case PARAMFLAG_FIN:
/* 'in' parameter. Copy it from inargs. */
Expand Down
6 changes: 6 additions & 0 deletions Modules/_decimal/libmpdec/io.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@
PEP-3101 formatting for numeric types. */


/* Disable warning that is part of -Wextra since gcc 7.0. */
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 7
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
#endif


/*
* Work around the behavior of tolower() and strcasecmp() in certain
* locales. For example, in tr_TR.utf8:
Expand Down
10 changes: 2 additions & 8 deletions Modules/cjkcodecs/_codecs_iso2022.c
Original file line number Diff line number Diff line change
Expand Up @@ -807,15 +807,9 @@ jisx0213_encoder(const Py_UCS4 *data, Py_ssize_t *length, void *config)
case 2: /* second character of unicode pair */
coded = find_pairencmap((ucs2_t)data[0], (ucs2_t)data[1],
jisx0213_pair_encmap, JISX0213_ENCPAIRS);
if (coded == DBCINV) {
*length = 1;
coded = find_pairencmap((ucs2_t)data[0], 0,
jisx0213_pair_encmap, JISX0213_ENCPAIRS);
if (coded == DBCINV)
return MAP_UNMAPPABLE;
}
else
if (coded != DBCINV)
return coded;
/* fall through */

case -1: /* flush unterminated */
*length = 1;
Expand Down
4 changes: 2 additions & 2 deletions Objects/stringlib/codecs.h
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ STRINGLIB(utf8_encoder)(PyObject *unicode,
case _Py_ERROR_REPLACE:
memset(p, '?', endpos - startpos);
p += (endpos - startpos);
/* fall through the ignore handler */
/* fall through */
case _Py_ERROR_IGNORE:
i += (endpos - startpos - 1);
break;
Expand Down Expand Up @@ -378,7 +378,7 @@ STRINGLIB(utf8_encoder)(PyObject *unicode,
}
startpos = k;
assert(startpos < endpos);
/* fall through the default handler */
/* fall through */
default:
rep = unicode_encode_call_errorhandler(
errors, &error_handler_obj, "utf-8", "surrogates not allowed",
Expand Down
5 changes: 3 additions & 2 deletions Objects/unicodeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -1779,6 +1779,7 @@ unicode_dealloc(PyObject *unicode)

case SSTATE_INTERNED_IMMORTAL:
Py_FatalError("Immortal interned string died.");
/* fall through */

default:
Py_FatalError("Inconsistent interned string state.");
Expand Down Expand Up @@ -6816,7 +6817,7 @@ unicode_encode_ucs1(PyObject *unicode,
case _Py_ERROR_REPLACE:
memset(str, '?', collend - collstart);
str += (collend - collstart);
/* fall through ignore error handler */
/* fall through */
case _Py_ERROR_IGNORE:
pos = collend;
break;
Expand Down Expand Up @@ -6855,7 +6856,7 @@ unicode_encode_ucs1(PyObject *unicode,
break;
collstart = pos;
assert(collstart != collend);
/* fallback to general error handling */
/* fall through */

default:
rep = unicode_encode_call_errorhandler(errors, &error_handler_obj,
Expand Down
3 changes: 3 additions & 0 deletions Python/ast.c
Original file line number Diff line number Diff line change
Expand Up @@ -1175,6 +1175,7 @@ ast_for_comp_op(struct compiling *c, const node *n)
return In;
if (strcmp(STR(n), "is") == 0)
return Is;
/* fall through */
default:
PyErr_Format(PyExc_SystemError, "invalid comp_op: %s",
STR(n));
Expand All @@ -1189,6 +1190,7 @@ ast_for_comp_op(struct compiling *c, const node *n)
return NotIn;
if (strcmp(STR(CHILD(n, 0)), "is") == 0)
return IsNot;
/* fall through */
default:
PyErr_Format(PyExc_SystemError, "invalid comp_op: %s %s",
STR(CHILD(n, 0)), STR(CHILD(n, 1)));
Expand Down Expand Up @@ -3149,6 +3151,7 @@ ast_for_flow_stmt(struct compiling *c, const node *n)
}
return Raise(expression, cause, LINENO(n), n->n_col_offset, c->c_arena);
}
/* fall through */
default:
PyErr_Format(PyExc_SystemError,
"unexpected flow_stmt: %d", TYPE(ch));
Expand Down
4 changes: 3 additions & 1 deletion Python/ceval.c
Original file line number Diff line number Diff line change
Expand Up @@ -1875,9 +1875,11 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
switch (oparg) {
case 2:
cause = POP(); /* cause */
/* fall through */
case 1:
exc = POP(); /* exc */
case 0: /* Fallthrough */
/* fall through */
case 0:
if (do_raise(exc, cause)) {
why = WHY_EXCEPTION;
goto fast_block_end;
Expand Down
5 changes: 3 additions & 2 deletions Python/compile.c
Original file line number Diff line number Diff line change
Expand Up @@ -4069,6 +4069,7 @@ expr_constant(struct compiler *c, expr_ty e)
else if (o == Py_False)
return 0;
}
/* fall through */
default:
return -1;
}
Expand Down Expand Up @@ -4361,13 +4362,13 @@ compiler_visit_expr(struct compiler *c, expr_ty e)
switch (e->v.Attribute.ctx) {
case AugLoad:
ADDOP(c, DUP_TOP);
/* Fall through to load */
/* Fall through */
case Load:
ADDOP_NAME(c, LOAD_ATTR, e->v.Attribute.attr, names);
break;
case AugStore:
ADDOP(c, ROT_TWO);
/* Fall through to save */
/* Fall through */
case Store:
ADDOP_NAME(c, STORE_ATTR, e->v.Attribute.attr, names);
break;
Expand Down
8 changes: 4 additions & 4 deletions Python/dtoa.c
Original file line number Diff line number Diff line change
Expand Up @@ -1454,7 +1454,7 @@ _Py_dg_strtod(const char *s00, char **se)
switch (c) {
case '-':
sign = 1;
/* no break */
/* fall through */
case '+':
c = *++s;
}
Expand Down Expand Up @@ -1523,7 +1523,7 @@ _Py_dg_strtod(const char *s00, char **se)
switch (c) {
case '-':
esign = 1;
/* no break */
/* fall through */
case '+':
c = *++s;
}
Expand Down Expand Up @@ -2441,15 +2441,15 @@ _Py_dg_dtoa(double dd, int mode, int ndigits,
break;
case 2:
leftright = 0;
/* no break */
/* fall through */
case 4:
if (ndigits <= 0)
ndigits = 1;
ilim = ilim1 = i = ndigits;
break;
case 3:
leftright = 0;
/* no break */
/* fall through */
case 5:
i = ndigits + k + 1;
ilim = i;
Expand Down
1 change: 1 addition & 0 deletions Python/formatter_unicode.c
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ parse_internal_render_format_spec(PyObject *format_spec,
format->thousands_separators = LT_UNDER_FOUR_LOCALE;
break;
}
/* fall through */
default:
invalid_comma_type(format->type);
return 0;
Expand Down
2 changes: 1 addition & 1 deletion Python/getargs.c
Original file line number Diff line number Diff line change
Expand Up @@ -2260,8 +2260,8 @@ skipitem(const char **p_format, va_list *p_va, int flags)
/* after 'e', only 's' and 't' is allowed */
goto err;
format++;
/* explicit fallthrough to string cases */
}
/* fall through */

case 's': /* string */
case 'z': /* string or None */
Expand Down
3 changes: 3 additions & 0 deletions Python/marshal.c
Original file line number Diff line number Diff line change
Expand Up @@ -1105,6 +1105,7 @@ r_object(RFILE *p)

case TYPE_ASCII_INTERNED:
is_interned = 1;
/* fall through */
case TYPE_ASCII:
n = r_long(p);
if (PyErr_Occurred())
Expand All @@ -1117,6 +1118,7 @@ r_object(RFILE *p)

case TYPE_SHORT_ASCII_INTERNED:
is_interned = 1;
/* fall through */
case TYPE_SHORT_ASCII:
n = r_byte(p);
if (n == EOF) {
Expand All @@ -1142,6 +1144,7 @@ r_object(RFILE *p)

case TYPE_INTERNED:
is_interned = 1;
/* fall through */
case TYPE_UNICODE:
{
const char *buffer;
Expand Down
12 changes: 6 additions & 6 deletions Python/pyhash.c
Original file line number Diff line number Diff line change
Expand Up @@ -393,13 +393,13 @@ siphash24(const void *src, Py_ssize_t src_sz) {
pt = (uint8_t *)&t;
m = (uint8_t *)in;
switch (src_sz) {
case 7: pt[6] = m[6];
case 6: pt[5] = m[5];
case 5: pt[4] = m[4];
case 7: pt[6] = m[6]; /* fall through */
case 6: pt[5] = m[5]; /* fall through */
case 5: pt[4] = m[4]; /* fall through */
case 4: memcpy(pt, m, sizeof(uint32_t)); break;
case 3: pt[2] = m[2];
case 2: pt[1] = m[1];
case 1: pt[0] = m[0];
case 3: pt[2] = m[2]; /* fall through */
case 2: pt[1] = m[1]; /* fall through */
case 1: pt[0] = m[0]; /* fall through */
}
b |= _le64toh(t);

Expand Down
3 changes: 3 additions & 0 deletions Python/wordcode_helpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,13 @@ write_op_arg(_Py_CODEUNIT *codestr, unsigned char opcode,
switch (ilen) {
case 4:
*codestr++ = PACKOPARG(EXTENDED_ARG, (oparg >> 24) & 0xff);
/* fall through */
case 3:
*codestr++ = PACKOPARG(EXTENDED_ARG, (oparg >> 16) & 0xff);
/* fall through */
case 2:
*codestr++ = PACKOPARG(EXTENDED_ARG, (oparg >> 8) & 0xff);
/* fall through */
case 1:
*codestr++ = PACKOPARG(opcode, oparg & 0xff);
break;
Expand Down