@@ -1303,6 +1303,7 @@ expand_array_notations (tree *tp, int *walk_subtrees, void *)
A[x:y];
Replace those with just void zero node. */
*tp = void_node;
+ gcc_fallthrough ();
default:
break;
}
@@ -1284,6 +1284,7 @@ pop_scope (void)
}
/* Fall through. */
+ gcc_fallthrough ();
case TYPE_DECL:
case CONST_DECL:
common_symbol:
@@ -1329,6 +1330,7 @@ pop_scope (void)
}
/* Fall through. */
+ gcc_fallthrough ();
/* Parameters go in DECL_ARGUMENTS, not BLOCK_VARS, and have
already been put there by store_parm_decls. Unused-
parameter warnings are handled by function.c.
@@ -5564,6 +5566,7 @@ grokdeclarator (const struct c_declarator *declarator,
case cdk_array:
loc = decl->id_loc;
/* FALL THRU. */
+ gcc_fallthrough ();
case cdk_function:
case cdk_pointer:
@@ -7250,6 +7253,7 @@ get_parm_info (bool ellipsis, tree expr)
DECL_CHAIN (decl) = others;
others = decl;
/* fall through */
+ gcc_fallthrough ();
case ERROR_MARK:
set_shadowed:
@@ -112,6 +112,7 @@ c_tree_printer (pretty_printer *pp, text_info *text, const char *spec,
}
}
/* FALLTHRU */
+ gcc_fallthrough ();
case 'F':
if (DECL_NAME (t))
@@ -1546,6 +1546,7 @@ c_parser_external_declaration (c_parser *parser)
}
/* Else fall through, and yield a syntax error trying to parse
as a declaration or function definition. */
+ gcc_fallthrough ();
default:
decl_or_fndef:
/* A declaration or a function definition (or, in Objective-C,
@@ -2517,6 +2518,7 @@ c_parser_declspecs (c_parser *parser, struct c_declspecs *specs,
if (!auto_type_ok)
goto out;
/* Fall through. */
+ gcc_fallthrough ();
case RID_UNSIGNED:
case RID_LONG:
case RID_SHORT:
@@ -5339,6 +5341,7 @@ c_parser_statement_after_labels (c_parser *parser, bool *if_p,
default:
expr_stmt:
stmt = c_finish_expr_stmt (loc, c_parser_expression_conv (parser).value);
+ gcc_fallthrough ();
expect_semicolon:
c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
break;
@@ -8174,6 +8177,7 @@ c_parser_postfix_expression (c_parser *parser)
break;
}
/* Else fall through to report error. */
+ gcc_fallthrough ();
default:
c_parser_error (parser, "expected expression");
expr.set_error ();
@@ -8578,6 +8582,7 @@ c_parser_check_literal_zero (c_parser *parser, unsigned *literal_zero_mask,
&& (c_parser_peek_2nd_token (parser)->type == CPP_COMMA
|| c_parser_peek_2nd_token (parser)->type == CPP_CLOSE_PAREN))
*literal_zero_mask |= 1U << idx;
+ gcc_fallthrough ();
default:
break;
}
@@ -10672,6 +10677,7 @@ c_parser_omp_variable_list (c_parser *parser,
break;
}
/* FALLTHROUGH */
+ gcc_fallthrough ();
case OMP_CLAUSE_MAP:
case OMP_CLAUSE_FROM:
case OMP_CLAUSE_TO:
@@ -10693,6 +10699,7 @@ c_parser_omp_variable_list (c_parser *parser,
t = build_component_ref (op_loc, t, ident, comp_loc);
}
/* FALLTHROUGH */
+ gcc_fallthrough ();
case OMP_CLAUSE_DEPEND:
case OMP_CLAUSE_REDUCTION:
while (c_parser_next_token_is (parser, CPP_OPEN_SQUARE))
@@ -14394,6 +14401,7 @@ restart:
if (code == OMP_ATOMIC_CAPTURE_NEW && !structured_block)
code = OMP_ATOMIC_CAPTURE_OLD;
/* FALLTHROUGH */
+ gcc_fallthrough ();
case PREINCREMENT_EXPR:
lhs = TREE_OPERAND (lhs, 0);
unfolded_lhs = NULL_TREE;
@@ -14405,6 +14413,7 @@ restart:
if (code == OMP_ATOMIC_CAPTURE_NEW && !structured_block)
code = OMP_ATOMIC_CAPTURE_OLD;
/* FALLTHROUGH */
+ gcc_fallthrough ();
case PREDECREMENT_EXPR:
lhs = TREE_OPERAND (lhs, 0);
unfolded_lhs = NULL_TREE;
@@ -14423,6 +14432,7 @@ restart:
/* Undo effects of boolean_increment for post {in,de}crement. */
lhs = TREE_OPERAND (TREE_OPERAND (lhs, 1), 0);
/* FALLTHRU */
+ gcc_fallthrough ();
case MODIFY_EXPR:
if (TREE_CODE (lhs) == MODIFY_EXPR
&& TREE_CODE (TREE_TYPE (TREE_OPERAND (lhs, 0))) == BOOLEAN_TYPE)
@@ -14458,6 +14468,7 @@ restart:
}
}
/* FALLTHRU */
+ gcc_fallthrough ();
default:
if (!lvalue_p (unfolded_lhs))
lhs = non_lvalue (lhs);
@@ -14863,6 +14874,7 @@ c_parser_omp_for_loop (location_t loc, c_parser *parser, enum tree_code code,
if (code == CILK_SIMD || code == CILK_FOR)
break;
/* FALLTHRU. */
+ gcc_fallthrough ();
default:
/* Can't be cond = error_mark_node, because we want to preserve
the location until c_finish_omp_for. */
@@ -607,6 +607,7 @@ composite_type (tree t1, tree t2)
t1 = qualify_type (t1, t2);
/* ... falls through ... */
}
+ gcc_fallthrough ();
default:
return build_type_attribute_variant (t1, attributes);
@@ -4494,6 +4495,7 @@ build_unary_op (location_t location,
}
/* ... fall through ... */
+ gcc_fallthrough ();
case ARRAY_REF:
if (TYPE_REVERSE_STORAGE_ORDER (TREE_TYPE (TREE_OPERAND (arg, 0))))
@@ -4512,6 +4514,7 @@ build_unary_op (location_t location,
"address of array with reverse scalar storage "
"order requested");
}
+ gcc_fallthrough ();
default:
break;
@@ -4696,9 +4699,11 @@ c_mark_addressable (tree exp)
}
/* drops in */
+ gcc_fallthrough ();
case FUNCTION_DECL:
TREE_ADDRESSABLE (x) = 1;
/* drops out */
+ gcc_fallthrough ();
default:
return true;
}
@@ -11464,6 +11469,7 @@ build_binary_op (location_t location, enum tree_code code,
op1 = c_save_expr (op1);
imag = build2 (resultcode, real_type, imag, op1);
/* Fall through. */
+ gcc_fallthrough ();
case PLUS_EXPR:
case MINUS_EXPR:
real = build2 (resultcode, real_type, real, op1);
@@ -11485,6 +11491,7 @@ build_binary_op (location_t location, enum tree_code code,
op0 = c_save_expr (op0);
imag = build2 (resultcode, real_type, op0, imag);
/* Fall through. */
+ gcc_fallthrough ();
case PLUS_EXPR:
real = build2 (resultcode, real_type, op0, real);
break;
@@ -12944,6 +12951,7 @@ c_finish_omp_clauses (tree clauses, enum c_omp_region_type ort)
check_dup_generic:
t = OMP_CLAUSE_DECL (c);
+ gcc_fallthrough ();
check_dup_generic_t:
if (!VAR_P (t) && TREE_CODE (t) != PARM_DECL)
{