@@ -1504,6 +1504,7 @@ eval_intrinsic (gfc_intrinsic_op op,
}
/* Fall through */
+ gcc_fallthrough ();
case INTRINSIC_EQ:
case INTRINSIC_EQ_OS:
case INTRINSIC_NE:
@@ -1523,6 +1524,7 @@ eval_intrinsic (gfc_intrinsic_op op,
/* Fall through */
/* Numeric binary */
+ gcc_fallthrough ();
case INTRINSIC_PLUS:
case INTRINSIC_MINUS:
case INTRINSIC_TIMES:
@@ -2323,6 +2323,7 @@ gfc_ref_dimen_size (gfc_array_ref *ar, int dimen, mpz_t *result, mpz_t *end)
mpz_mul (*end, *end, stride);
mpz_add (*end, *end, lower);
}
+ gcc_fallthrough ();
cleanup:
mpz_clear (upper);
@@ -2432,6 +2433,7 @@ gfc_array_dimen_size (gfc_expr *array, int dimen, mpz_t *result)
}
/* Fall through */
+ gcc_fallthrough ();
default:
if (array->shape == NULL)
return false;
@@ -390,6 +390,7 @@ gfc_cpp_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED
case OPT_MM:
gfc_cpp_option.deps_skip_system = 1;
/* fall through */
+ gcc_fallthrough ();
case OPT_M:
gfc_cpp_option.deps = 1;
@@ -398,6 +399,7 @@ gfc_cpp_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED
case OPT_MMD:
gfc_cpp_option.deps_skip_system = 1;
/* fall through */
+ gcc_fallthrough ();
case OPT_MD:
gfc_cpp_option.deps = 1;
@@ -1037,6 +1039,7 @@ cb_cpp_error (cpp_reader *pfile ATTRIBUTE_UNUSED, int level, int reason,
case CPP_DL_WARNING_SYSHDR:
global_dc->dc_warn_system_headers = 1;
/* Fall through. */
+ gcc_fallthrough ();
case CPP_DL_WARNING:
dlevel = DK_WARNING;
break;
@@ -3486,6 +3486,7 @@ match_implicit_range (void)
{
case ')':
inner = 0; /* Fall through. */
+ gcc_fallthrough ();
case ',':
c2 = c1;
@@ -3911,6 +3912,7 @@ match_attr_spec (void)
d = DECL_CODIMENSION;
break;
}
+ gcc_fallthrough ();
case 'n':
if (match_string_p ("tiguous"))
{
@@ -2199,6 +2199,7 @@ gfc_dep_resolver (gfc_ref *lref, gfc_ref *rref, gfc_reverse *reverse)
/* Overlap codes are in order of priority. We only need to
know the worst one.*/
+ gcc_fallthrough ();
update_fin_dep:
if (this_dep > fin_dep)
@@ -1617,6 +1617,7 @@ show_code_node (int level, gfc_code *c)
case EXEC_ERROR_STOP:
fputs ("ERROR ", dumpfile);
/* Fall through. */
+ gcc_fallthrough ();
case EXEC_STOP:
fputs ("STOP ", dumpfile);
@@ -2162,6 +2163,7 @@ show_code_node (int level, gfc_code *c)
case EXEC_FLUSH:
fputs ("FLUSH", dumpfile);
+ gcc_fallthrough ();
show_filepos:
fp = c->ext.filepos;
@@ -2378,6 +2380,7 @@ show_code_node (int level, gfc_code *c)
case EXEC_WRITE:
fputs ("WRITE", dumpfile);
+ gcc_fallthrough ();
show_dt:
dt = c->ext.dt;
@@ -2468,6 +2471,7 @@ show_code_node (int level, gfc_code *c)
fputs (" SIGN=", dumpfile);
show_expr (dt->sign);
}
+ gcc_fallthrough ();
show_dt_code:
for (c = c->block->next; c; c = c->next)
@@ -1646,6 +1646,7 @@ simplify_const_ref (gfc_expr *p)
p->ref->u.ar.type = AR_FULL;
/* Fall through. */
+ gcc_fallthrough ();
case AR_FULL:
if (p->ref->next != NULL
@@ -1445,6 +1445,7 @@ optimize_op (gfc_expr *e)
changed = optimize_comparison (e, op);
/* Fall through */
+ gcc_fallthrough ();
/* Look at array constructors. */
case INTRINSIC_PLUS:
case INTRINSIC_MINUS:
@@ -3312,6 +3313,7 @@ gfc_expr_walker (gfc_expr **e, walk_expr_fn_t exprfn, void *data)
/* Fall through to the variable case in order to walk the
reference. */
+ gcc_fallthrough ();
case EXPR_SUBSTRING:
case EXPR_VARIABLE:
@@ -3345,6 +3347,7 @@ gfc_expr_walker (gfc_expr **e, walk_expr_fn_t exprfn, void *data)
break;
}
}
+ gcc_fallthrough ();
default:
break;
@@ -3600,6 +3603,7 @@ gfc_code_walker (gfc_code **c, walk_code_fn_t codefn, walk_expr_fn_t exprfn,
in_omp_workshare = true;
/* Fall through */
+ gcc_fallthrough ();
case EXEC_OMP_DISTRIBUTE:
case EXEC_OMP_DISTRIBUTE_PARALLEL_DO:
@@ -395,10 +395,12 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
case 0:
add_arg_libgfortran (static_lib && !static_linking);
/* Fall through. */
+ gcc_fallthrough ();
case 1:
if (need_math)
append_option (OPT_l, MATH_LIBRARY, 1);
+ gcc_fallthrough ();
default:
break;
}
@@ -930,6 +930,7 @@ gfc_check_operator_interface (gfc_symbol *sym, gfc_intrinsic_op op,
if (t1 == BT_CHARACTER && t2 == BT_CHARACTER)
goto bad_repl;
/* Fall through. */
+ gcc_fallthrough ();
case INTRINSIC_PLUS:
case INTRINSIC_MINUS:
@@ -242,6 +242,7 @@ format_lex (void)
case '-':
negative_flag = 1;
/* Falls through. */
+ gcc_fallthrough ();
case '+':
c = next_char_not_space (&error);
@@ -3762,6 +3762,7 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses,
gfc_error ("Cray pointee object %qs in %s clause at %L",
n->sym->name, name, &n->where);
/* FALLTHRU */
+ gcc_fallthrough ();
case OMP_LIST_DEVICE_RESIDENT:
check_symbol_not_pointer (n->sym, n->where, name);
check_array_not_assumed (n->sym, n->where, name);
@@ -1235,6 +1235,7 @@ next_fixed (void)
}
}
/* FALLTHROUGH */
+ gcc_fallthrough ();
/* Comments have already been skipped by the time we get
here so don't bother checking for them. */
@@ -3609,6 +3610,7 @@ loop:
break;
/* Fall through */
+ gcc_fallthrough ();
case ST_USE:
case ST_IMPORT:
@@ -3672,6 +3674,7 @@ declSt:
break;
}
+ gcc_fallthrough ();
default:
break;
}
@@ -4007,6 +4010,7 @@ parse_select_block (void)
accept_statement (st);
/* Fall through */
+ gcc_fallthrough ();
case ST_END_SELECT:
break;
@@ -4091,6 +4095,7 @@ parse_select_type_block (void)
accept_statement (st);
/* Fall through */
+ gcc_fallthrough ();
case ST_END_SELECT:
break;
@@ -5103,6 +5108,7 @@ parse_executable (gfc_statement st)
gfc_notify_std (GFC_STD_F95_OBS, "DATA statement at %C after the "
"first executable statement");
/* Fall through. */
+ gcc_fallthrough ();
case ST_FORMAT:
case ST_ENTRY:
@@ -366,12 +366,14 @@ match_boz_constant (gfc_expr **result)
case 'x':
x_hex = 1;
/* Fall through. */
+ gcc_fallthrough ();
case 'z':
radix = 16;
post = 0;
break;
case '\'':
/* Fall through. */
+ gcc_fallthrough ();
case '\"':
delim = post;
post = 1;
@@ -1686,18 +1688,21 @@ match_arg_list_function (gfc_actual_arglist *result)
result->name = "%LOC";
break;
}
+ gcc_fallthrough ();
case 'r':
if (strncmp (name, "ref", 3) == 0)
{
result->name = "%REF";
break;
}
+ gcc_fallthrough ();
case 'v':
if (strncmp (name, "val", 3) == 0)
{
result->name = "%VAL";
break;
}
+ gcc_fallthrough ();
default:
m = MATCH_ERROR;
goto cleanup;
@@ -3007,6 +3012,7 @@ gfc_match_rvalue (gfc_expr **result)
m = gfc_match_varspec (e, 0, false, true);
break;
}
+ gcc_fallthrough ();
/* Match a function reference. */
function0:
@@ -3412,6 +3418,7 @@ match_variable (gfc_expr **result, int equiv_flag, int host_flag)
break;
/* Fall through to error */
+ gcc_fallthrough ();
default:
gfc_error ("%qs at %C is not a variable", sym->name);
@@ -3543,6 +3543,7 @@ resolve_operator (gfc_expr *e)
return false;
/* Fall through... */
+ gcc_fallthrough ();
case INTRINSIC_NOT:
case INTRINSIC_UPLUS:
@@ -3661,6 +3662,7 @@ resolve_operator (gfc_expr *e)
}
/* Fall through... */
+ gcc_fallthrough ();
case INTRINSIC_EQ:
case INTRINSIC_EQ_OS:
@@ -4688,6 +4690,7 @@ resolve_ref (gfc_expr *expr)
break;
}
/* Fall through. */
+ gcc_fallthrough ();
case AR_SECTION:
current_part_dimension = 1;
break;
@@ -5419,14 +5422,17 @@ fixup_charlen (gfc_expr *e)
{
case EXPR_OP:
gfc_resolve_character_operator (e);
+ gcc_fallthrough ();
case EXPR_ARRAY:
if (e->expr_type == EXPR_ARRAY)
gfc_resolve_character_array_constructor (e);
+ gcc_fallthrough ();
case EXPR_SUBSTRING:
if (!e->ts.u.cl && e->ref)
gfc_resolve_substring_charlen (e);
+ gcc_fallthrough ();
default:
if (!e->ts.u.cl)
@@ -7279,6 +7285,7 @@ resolve_allocate_expr (gfc_expr *e, gfc_code *code, bool *array_alloc_wo_spec)
break;
/* Fall Through... */
+ gcc_fallthrough ();
case DIMEN_UNKNOWN:
case DIMEN_VECTOR:
@@ -10432,6 +10439,7 @@ gfc_resolve_code (gfc_code *code, gfc_namespace *ns)
omp_workshare_save = omp_workshare_flag;
omp_workshare_flag = 1;
/* FALL THROUGH */
+ gcc_fallthrough ();
default:
gfc_resolve_blocks (code->block, ns);
break;
@@ -11183,6 +11191,7 @@ build_default_init_expr (gfc_symbol *sym)
case GFC_INIT_REAL_SNAN:
init_expr->is_snan = 1;
/* Fall through. */
+ gcc_fallthrough ();
case GFC_INIT_REAL_NAN:
mpfr_set_nan (init_expr->value.real);
break;
@@ -11212,6 +11221,7 @@ build_default_init_expr (gfc_symbol *sym)
case GFC_INIT_REAL_SNAN:
init_expr->is_snan = 1;
/* Fall through. */
+ gcc_fallthrough ();
case GFC_INIT_REAL_NAN:
mpfr_set_nan (mpc_realref (init_expr->value.complex));
mpfr_set_nan (mpc_imagref (init_expr->value.complex));
@@ -600,6 +600,7 @@ gfc_target_interpret_expr (unsigned char *buffer, size_t buffer_size,
case BT_CLASS:
result->ts = CLASS_DATA (result)->ts;
/* Fall through. */
+ gcc_fallthrough ();
case BT_DERIVED:
result->representation.length =
gfc_interpret_derived (buffer, buffer_size, result);
@@ -4031,6 +4031,7 @@ done:
continue;
}
/* Otherwise fall through GFC_SS_FUNCTION. */
+ gcc_fallthrough ();
}
case GFC_ISYM_LCOBOUND:
case GFC_ISYM_UCOBOUND:
@@ -4040,6 +4041,7 @@ done:
default:
continue;
}
+ gcc_fallthrough ();
case GFC_SS_CONSTRUCTOR:
case GFC_SS_FUNCTION:
@@ -5451,6 +5453,7 @@ gfc_array_allocate (gfc_se * se, gfc_expr * expr, tree status, tree errmsg,
break;
}
/* Fall through. */
+ gcc_fallthrough ();
case AR_SECTION:
lower = ref->u.ar.start;
@@ -2102,6 +2102,7 @@ flatten_array_ctors_without_strlen (gfc_expr* e)
}
/* Otherwise, fall through to handle constructor elements. */
+ gcc_fallthrough ();
case EXPR_STRUCTURE:
for (c = gfc_constructor_first (e->value.constructor);
c; c = gfc_constructor_next (c))
@@ -2936,6 +2937,7 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
rse.expr = convert (gfc_int4_type_node, rse.expr);
res_ikind_2 = ikind;
/* Fall through. */
+ gcc_fallthrough ();
case 4:
ikind = 0;
@@ -2964,6 +2966,7 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
else
gcc_unreachable ();
/* Fall through. */
+ gcc_fallthrough ();
case 4:
kind = 0;
@@ -3202,6 +3205,7 @@ gfc_conv_expr_op (gfc_se * se, gfc_expr * expr)
}
/* Fallthrough. */
+ gcc_fallthrough ();
case INTRINSIC_UPLUS:
gfc_conv_expr (se, expr->value.op.op1);
return;
@@ -1047,6 +1047,7 @@ conv_caf_vector_subscript (stmtblock_t *block, tree desc, gfc_array_ref *ar)
stride = gfc_index_one_node;
/* Fall through. */
+ gcc_fallthrough ();
case DIMEN_ELEMENT:
if (ar->start[i])
{
@@ -2136,6 +2137,7 @@ conv_intrinsic_cobound (gfc_se * se, gfc_expr * expr)
bound = fold_build2_loc (input_location, MINUS_EXPR,
gfc_array_index_type, bound,
gfc_index_one_node);
+ gcc_fallthrough ();
case 1:
break;
default:
@@ -5330,6 +5332,7 @@ gfc_conv_intrinsic_len (gfc_se * se, gfc_expr * expr)
}
/* Otherwise fall through. */
+ gcc_fallthrough ();
default:
/* Anybody stupid enough to do this deserves inefficient code. */
@@ -194,6 +194,7 @@ gfc_build_st_parameter (enum ioparam_type ptype, tree *types)
p->field = gfc_add_field_to_struct (t, get_identifier (p->name),
pchar_type_node, &chain);
/* FALLTHROUGH */
+ gcc_fallthrough ();
case IOPARM_type_char2:
len = strlen (p->name);
gcc_assert (len <= sizeof (name) - sizeof ("_len"));
@@ -2194,6 +2195,7 @@ transfer_expr (gfc_se * se, gfc_typespec * ts, tree addr_expr, gfc_code * code)
return;
}
/* Fall through. */
+ gcc_fallthrough ();
case BT_HOLLERITH:
if (se->string_length)
arg2 = se->string_length;
@@ -4962,6 +4962,7 @@ gfc_trans_where_2 (gfc_code * code, tree mask, bool invert,
case EXEC_ASSIGN:
expr1 = cnext->expr1;
expr2 = cnext->expr2;
+ gcc_fallthrough ();
evaluate:
if (nested_forall_info != NULL)
{