From patchwork Mon Jul 11 19:59:18 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Polacek X-Patchwork-Id: 647069 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3rpGCR2NBrz9s9c for ; Tue, 12 Jul 2016 05:59:47 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=wGJRF9H0; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:references:mime-version:content-type :in-reply-to; q=dns; s=default; b=NyrwaHuA24sSjptm4uXWgvNrHjkzcl It+Gjf6NuSvdhm6tpj6SGRsDVtY3c0atL8UVR49LZfYTEN3qaJ68kZilMcVxo1Qu xlfO+y0OkK1wYaBCgn1805E3EY6832VDHDliKs3BR/QgNNtYTrUGPKMsQJhbfpmC UfxdUYL0s3bPw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:references:mime-version:content-type :in-reply-to; s=default; bh=xlkxQlC3aQENbKgSnJ/2VbuPxsY=; b=wGJR F9H02/a+ylLk/01xHKB6ThxFdPkpG/PU5tFrFnXVVXriAUKJOKe8ZF8C1OOH0SfW Yni3skmEYzu7LFCF6jjAOTrlKwCGW0uu+u+uqJX9YCf2X/OQlkYlg8kqmvDP4VVZ IoNGt2e1qW66mVzwNnohnS/c2i7veoB7F8kMq1Q= Received: (qmail 46481 invoked by alias); 11 Jul 2016 19:59:34 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 46465 invoked by uid 89); 11 Jul 2016 19:59:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.0 required=5.0 tests=BAYES_50, KAM_STOCKGEN, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=no version=3.3.2 spammy=sk:SYMBOL_, 0x1000, pac, SImode X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 11 Jul 2016 19:59:23 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CC96465411 for ; Mon, 11 Jul 2016 19:59:21 +0000 (UTC) Received: from redhat.com (ovpn-204-85.brq.redhat.com [10.40.204.85]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u6BJxIQg004751 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Mon, 11 Jul 2016 15:59:20 -0400 Date: Mon, 11 Jul 2016 21:59:18 +0200 From: Marek Polacek To: GCC Patches Subject: Re: Implement -Wswitch-fallthrough: other archs Message-ID: <20160711195918.GC13963@redhat.com> References: <20160711194340.GI13963@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20160711194340.GI13963@redhat.com> User-Agent: Mutt/1.6.1 (2016-04-27) 2016-07-11 Marek Polacek PR c/7652 * config/alpha/alpha.c (alpha_rtx_costs): Likewise. (alpha_legitimate_constant_p): Likewise. (alpha_emit_setcc): Likewise. (alpha_emit_xfloating_libcall): Likewise. (alpha_function_value_1): Likewise. (alpha_fold_builtin): Likewise. * config/alpha/predicates.md: Likewise. * config/arc/arc.c (arc_init): Likewise. (arc_print_operand): Likewise. (arc_rtx_costs): Likewise. (arc_legitimate_constant_p): Likewise. (arc_get_insn_variants): Likewise. (arc_ifcvt): Likewise. (arc_expand_atomic_op): Likewise. * config/arc/predicates.md: Likewise. * config/avr/avr-log.c (avr_log_vadump): Likewise. * config/avr/avr.c (ashrqi3_out): Likewise. (ashrhi3_out): Likewise. (avr_out_ashrpsi3): Likewise. (ashrsi3_out): Likewise. (avr_out_lshrpsi3): Likewise. (avr_rtx_costs_1): Likewise. * config/bfin/bfin.c (print_operand): Likewise. (bfin_rtx_costs): Likewise. * config/c6x/c6x.c (c6x_expand_compare): Likewise. (c6x_mem_operand): Likewise. (c6x_legitimate_address_p_1): Likewise. (count_unit_reqs): Likewise. (c6x_registers_update): Likewise. * config/c6x/c6x.h: Likewise. * config/c6x/predicates.md: Likewise. * config/cr16/cr16.c (cr16_address_cost): Likewise. (cr16_print_operand_address): Likewise. * config/cris/cris.c (cris_print_operand): Likewise. (cris_rtx_costs): Likewise. * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise. (epiphany_address_cost): Likewise. (epiphany_print_operand): Likewise. (epiphany_mode_needed): Likewise. (epiphany_mode_entry_exit): Likewise. (epiphany_insert_mode_switch_use): Likewise. * config/fr30/fr30.c (fr30_print_operand): Likewise. * config/frv/frv.c (frv_print_operand): Likewise. (frv_legitimate_address_p_1): Likewise. (frv_emit_movsi): Likewise. (frv_rtx_costs): Likewise. * config/h8300/h8300.c (h8300_print_operand): Likewise. (get_shift_alg): Likewise. (output_a_shift): Likewise. (compute_a_shift_length): Likewise. (compute_a_shift_cc): Likewise. * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise. (ia64_expand_atomic_op): Likewise. (ia64_print_operand): Likewise. (ia64_rtx_costs): Likewise. (group_barrier_needed): Likewise. (ia64_expand_vec_perm_const): Likewise. * config/ia64/predicates.md: Likewise. * config/iq2000/iq2000.c (iq2000_address_cost): Likewise. * config/lm32/lm32.c (lm32_rtx_costs): Likewise. * config/m32r/m32r.c (m32r_rtx_costs): Likewise. (m32r_print_operand): Likewise. * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise. * config/m68k/m68k.h: Likewise. * config/mips/mips.c (mips_symbolic_constant_p): Likewise. (mips_symbol_insns_1): Likewise. (mips_const_insns): Likewise. (mips_set_reg_reg_cost): Likewise. (mips_rtx_costs): Likewise. (mips_output_order_conditional_branch): Likewise. (mips_expand_vec_perm_const): Likewise. * config/mmix/predicates.md: Likewise. * config/mn10300/mn10300.c (mn10300_print_operand): Likewise. (mn10300_rtx_costs): Likewise. (extract_bundle): Likewise. * config/mn10300/mn10300.md: Likewise. * config/msp430/msp430.c (msp430_initial_elimination_offset): Likewise. (msp430_print_operand): Likewise. * config/nds32/nds32-cost.c: Likewise. * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise. (nios2_print_operand): Likewise. * config/pa/pa.c (hppa_rtx_costs): Likewise. * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise. * config/rl78/rl78-real.md: Likewise. * config/rl78/rl78.c (characterize_address): Likewise. (rl78_initial_elimination_offset): Likewise. * config/rx/rx.c (rx_print_operand_address): Likewise. (rx_print_operand): Likewise. (rx_option_override): Likewise. * config/s390/s390.c (s390_select_ccmode): Likewise. (s390_expand_atomic): Likewise. * config/sh/sh.c (sh_print_operand): Likewise. (output_branch): Likewise. (sh_rtx_costs): Likewise. * config/sh/sh.md: Likewise. * config/sparc/sparc.c (sparc_rtx_costs): Likewise. (sparc_emit_membar_for_model): Likewise. * config/spu/spu.c (classify_immediate): Likewise. * config/tilegx/tilegx.c (tilegx_emit_cc_test): Likewise. (tilegx_print_operand): Likewise. * config/tilepro/tilepro.c (tilepro_emit_cc_test): Likewise. (tilepro_print_operand): Likewise. * config/v850/v850.c (v850_print_operand): Likewise. * config/vax/vax.c (vax_rtx_costs): Likewise. * config/visium/visium.c (visium_expand_int_cstore): Likewise. (visium_expand_fp_cstore): Likewise. * config/xtensa/xtensa.c (xtensa_expand_atomic): Likewise. (xtensa_rtx_costs): Likewise. diff --git gcc/gcc/config/alpha/alpha.c gcc/gcc/config/alpha/alpha.c index 94fed102..66f8711 100644 --- gcc/gcc/config/alpha/alpha.c +++ gcc/gcc/config/alpha/alpha.c @@ -1400,6 +1400,7 @@ alpha_rtx_costs (rtx x, machine_mode mode, int outer_code, int opno, int *total, return true; } /* FALLTHRU */ + gcc_fallthrough (); case CONST_DOUBLE: case CONST_WIDE_INT: @@ -1468,6 +1469,7 @@ alpha_rtx_costs (rtx x, machine_mode mode, int outer_code, int opno, int *total, return false; } /* FALLTHRU */ + gcc_fallthrough (); case ASHIFTRT: case LSHIFTRT: @@ -1504,6 +1506,7 @@ alpha_rtx_costs (rtx x, machine_mode mode, int outer_code, int opno, int *total, return false; } /* FALLTHRU */ + gcc_fallthrough (); case ABS: if (! float_mode_p) @@ -1512,6 +1515,7 @@ alpha_rtx_costs (rtx x, machine_mode mode, int outer_code, int opno, int *total, return false; } /* FALLTHRU */ + gcc_fallthrough (); case FLOAT: case UNSIGNED_FLOAT: @@ -2130,6 +2134,7 @@ alpha_legitimate_constant_p (machine_mode mode, rtx x) if (GET_CODE (x) != SYMBOL_REF) return true; /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: /* TLS symbols are never valid. */ @@ -2161,6 +2166,7 @@ alpha_legitimate_constant_p (machine_mode mode, rtx x) if (GET_MODE_SIZE (mode) != 8) return false; /* FALLTHRU */ + gcc_fallthrough (); case CONST_INT: if (TARGET_BUILD_CONSTANTS) @@ -2658,6 +2664,7 @@ alpha_emit_setcc (rtx operands[], machine_mode cmp_mode) if (cmp_mode == DImode && op1 == const0_rtx) break; /* FALLTHRU */ + gcc_fallthrough (); case ORDERED: cmp_code = reverse_condition (code); @@ -3095,6 +3102,7 @@ alpha_emit_xfloating_libcall (rtx func, rtx target, rtx operands[], case VOIDmode: gcc_assert (CONST_INT_P (operands[i])); /* FALLTHRU */ + gcc_fallthrough (); case DImode: reg = gen_rtx_REG (DImode, regno); regno += 1; @@ -5787,6 +5795,7 @@ alpha_function_value_1 (const_tree valtype, const_tree func ATTRIBUTE_UNUSED, if (!(TARGET_ABI_OPEN_VMS && valtype && AGGREGATE_TYPE_P (valtype))) PROMOTE_MODE (mode, dummy, valtype); /* FALLTHRU */ + gcc_fallthrough (); case MODE_COMPLEX_INT: case MODE_VECTOR_INT: @@ -7092,6 +7101,7 @@ alpha_fold_builtin (tree fndecl, int n_args, tree *op, case ALPHA_BUILTIN_ZAP: opint[1] ^= 0xff; /* FALLTHRU */ + gcc_fallthrough (); case ALPHA_BUILTIN_ZAPNOT: return alpha_fold_builtin_zapnot (op, opint, op_const); diff --git gcc/gcc/config/alpha/predicates.md gcc/gcc/config/alpha/predicates.md index 24fa3c2..c902f3e 100644 --- gcc/gcc/config/alpha/predicates.md +++ gcc/gcc/config/alpha/predicates.md @@ -182,6 +182,7 @@ if (register_operand (op, mode)) return 1; /* ... fall through ... */ + gcc_fallthrough (); case MEM: return ((TARGET_BWX || (mode != HImode && mode != QImode)) && general_operand (op, mode)); diff --git gcc/gcc/config/arc/arc.c gcc/gcc/config/arc/arc.c index c0aa075..735e861 100644 --- gcc/gcc/config/arc/arc.c +++ gcc/gcc/config/arc/arc.c @@ -734,6 +734,7 @@ arc_init (void) break; } /* Fall through. */ + gcc_fallthrough (); default: arc_multcost = COSTS_N_INSNS (30); break; @@ -3448,6 +3449,7 @@ arc_print_operand (FILE *file, rtx x, int code) break; } /* Fall through. Let output_addr_const deal with it. */ + gcc_fallthrough (); default : if (flag_pic || (GET_CODE (x) == CONST @@ -4460,6 +4462,7 @@ arc_rtx_costs (rtx x, machine_mode mode, int outer_code, } } /* FALLTHRU */ + gcc_fallthrough (); /* 4 byte values can be fetched as immediate constants - let's give that the cost of an extra insn. */ @@ -4609,6 +4612,7 @@ arc_rtx_costs (rtx x, machine_mode mode, int outer_code, return true; } /* Fall through. */ + gcc_fallthrough (); /* scc_insn expands into two insns. */ case GTU: case GEU: case LEU: if (mode == SImode) @@ -5408,10 +5412,12 @@ arc_legitimate_constant_p (machine_mode mode, rtx x) if (SYMBOL_REF_TLS_MODEL (x)) return false; /* Fall through. */ + gcc_fallthrough (); case LABEL_REF: if (flag_pic) return false; /* Fall through. */ + gcc_fallthrough (); default: break; @@ -8035,6 +8041,7 @@ arc_get_insn_variants (rtx_insn *insn, int len, bool, bool target_p, ilv++; } /* Fall through. */ + gcc_fallthrough (); case TYPE_BRCC_NO_DELAY_SLOT: /* doloop_fallback* patterns are TYPE_BRCC_NO_DELAY_SLOT for (delay slot) scheduling purposes, but they are longer. */ @@ -8356,6 +8363,7 @@ arc_ifcvt (void) continue; } /* Fall through. */ + gcc_fallthrough (); case 4: case 5: if (!NONDEBUG_INSN_P (insn)) break; @@ -9820,6 +9828,7 @@ arc_expand_atomic_op (enum rtx_code code, rtx mem, rtx val, } /* FALLTHRU. */ + gcc_fallthrough (); default: x = gen_rtx_fmt_ee (code, mode, before, val); emit_insn (gen_rtx_SET (after, x)); diff --git gcc/gcc/config/arc/predicates.md gcc/gcc/config/arc/predicates.md index f85f931..450b163 100644 --- gcc/gcc/config/arc/predicates.md +++ gcc/gcc/config/arc/predicates.md @@ -517,6 +517,7 @@ if (GET_MODE (op) == CC_ZNmode) return 1; /* Fall through. */ + gcc_fallthrough (); case CC_ZNmode: case CC_Cmode: return GET_MODE (op) == CCmode; default: diff --git gcc/gcc/config/avr/avr-log.c gcc/gcc/config/avr/avr-log.c index fe2cae4..3853471 100644 --- gcc/gcc/config/avr/avr-log.c +++ gcc/gcc/config/avr/avr-log.c @@ -229,6 +229,7 @@ avr_log_vadump (FILE *file, const char *caller, va_list ap) if (!current_pass) return; /* FALLTHRU */ + gcc_fallthrough (); case '?': avr_vdump (file, caller, "%F[%f:%P]"); diff --git gcc/gcc/config/avr/avr.c gcc/gcc/config/avr/avr.c index 18ed766..53d726e 100644 --- gcc/gcc/config/avr/avr.c +++ gcc/gcc/config/avr/avr.c @@ -6212,6 +6212,7 @@ ashrqi3_out (rtx_insn *insn, rtx operands[], int *len) break; /* fall through */ + gcc_fallthrough (); case 7: *len = 2; @@ -6377,6 +6378,7 @@ ashrhi3_out (rtx_insn *insn, rtx operands[], int *len) break; /* fall through */ + gcc_fallthrough (); case 15: return *len = 3, ("lsl %B0" CR_TAB @@ -6434,6 +6436,7 @@ avr_out_ashrpsi3 (rtx_insn *insn, rtx *op, int *plen) break; /* fall through */ + gcc_fallthrough (); case 23: return avr_asm_len ("lsl %C0" CR_TAB @@ -6524,6 +6527,7 @@ ashrsi3_out (rtx_insn *insn, rtx operands[], int *len) break; /* fall through */ + gcc_fallthrough (); case 31: if (AVR_HAVE_MOVW) @@ -6936,6 +6940,7 @@ avr_out_lshrpsi3 (rtx_insn *insn, rtx *op, int *plen) break; /* fall through */ + gcc_fallthrough (); case 23: return avr_asm_len ("clr %A0" CR_TAB @@ -10040,6 +10045,7 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, return true; } /* FALLTHRU */ + gcc_fallthrough (); case AND: case IOR: *total = COSTS_N_INSNS (GET_MODE_SIZE (mode)); diff --git gcc/gcc/config/bfin/bfin.c gcc/gcc/config/bfin/bfin.c index 75ddcf0..6d7839d 100644 --- gcc/gcc/config/bfin/bfin.c +++ gcc/gcc/config/bfin/bfin.c @@ -1569,6 +1569,7 @@ print_operand (FILE *file, rtx x, char code) x = GEN_INT (-8 - INTVAL (x)); /* fall through */ + gcc_fallthrough (); case SYMBOL_REF: output_addr_const (file, x); @@ -2936,6 +2937,7 @@ bfin_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno, return true; } /* fall through */ + gcc_fallthrough (); case SIGN_EXTEND: case ZERO_EXTEND: diff --git gcc/gcc/config/c6x/c6x.c gcc/gcc/config/c6x/c6x.c index 4cbe63c..778f76e 100644 --- gcc/gcc/config/c6x/c6x.c +++ gcc/gcc/config/c6x/c6x.c @@ -1499,6 +1499,7 @@ c6x_expand_compare (rtx comparison, machine_mode mode) case UNGT: jump_code = EQ; /* fall through */ + gcc_fallthrough (); case LE: case GE: code1 = code == LE || code == UNGT ? LT : GT; @@ -1508,9 +1509,11 @@ c6x_expand_compare (rtx comparison, machine_mode mode) case UNORDERED: jump_code = EQ; /* fall through */ + gcc_fallthrough (); case ORDERED: code3 = EQ; /* fall through */ + gcc_fallthrough (); case LTGT: code1 = LT; code2 = GT; @@ -2322,6 +2325,7 @@ c6x_mem_operand (rtx op, enum reg_class c, bool small_offset) } /* fall through */ + gcc_fallthrough (); case PRE_INC: case PRE_DEC: case PRE_MODIFY: @@ -2372,6 +2376,7 @@ c6x_legitimate_address_p_1 (machine_mode mode, rtx x, bool strict, return false; /* fall through */ + gcc_fallthrough (); case PRE_INC: case PRE_DEC: case POST_INC: @@ -2384,6 +2389,7 @@ c6x_legitimate_address_p_1 (machine_mode mode, rtx x, bool strict, return false; /* fall through */ + gcc_fallthrough (); case REG: if (strict) return REGNO_OK_FOR_BASE_STRICT_P (REGNO (x)); @@ -3284,6 +3290,7 @@ count_unit_reqs (unit_req_table reqs, rtx_insn *head, rtx_insn *tail) case 2: reqs[side2][req2]++; /* fall through */ + gcc_fallthrough (); case 1: reqs[side1][req1]++; break; @@ -4104,6 +4111,7 @@ c6x_registers_update (rtx_insn *insn) case PRE_DEC: op = XEXP (op, 0); /* fall through */ + gcc_fallthrough (); case REG: c6x_mark_reg_read (op, false); break; @@ -4112,6 +4120,7 @@ c6x_registers_update (rtx_insn *insn) op = XEXP (op, 1); gcc_assert (GET_CODE (op) == PLUS); /* fall through */ + gcc_fallthrough (); case PLUS: c6x_mark_reg_read (XEXP (op, 0), false); if (REG_P (XEXP (op, 1))) diff --git gcc/gcc/config/c6x/c6x.h gcc/gcc/config/c6x/c6x.h index 3209bf6..4e4b41c 100644 --- gcc/gcc/config/c6x/c6x.h +++ gcc/gcc/config/c6x/c6x.h @@ -93,6 +93,7 @@ extern c6x_cpu_t c6x_arch; case C6X_CPU_C64XP: \ builtin_define ("_TMS320C6400_PLUS"); \ /* ... fall through ... */ \ + gcc_fallthrough (); \ case C6X_CPU_C64X: \ builtin_define ("_TMS320C6400"); \ break; \ @@ -100,6 +101,7 @@ extern c6x_cpu_t c6x_arch; case C6X_CPU_C67XP: \ builtin_define ("_TMS320C6700_PLUS"); \ /* ... fall through ... */ \ + gcc_fallthrough (); \ case C6X_CPU_C67X: \ builtin_define ("_TMS320C6700"); \ break; \ diff --git gcc/gcc/config/c6x/predicates.md gcc/gcc/config/c6x/predicates.md index 9db6002..3f6e968 100644 --- gcc/gcc/config/c6x/predicates.md +++ gcc/gcc/config/c6x/predicates.md @@ -193,6 +193,7 @@ offset = INTVAL (XEXP (op, 1)); op = XEXP (op, 0); /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: /* For shared libraries, only allow symbols we know are local. diff --git gcc/gcc/config/cr16/cr16.c gcc/gcc/config/cr16/cr16.c index 141b8bc..b7a95c0 100644 --- gcc/gcc/config/cr16/cr16.c +++ gcc/gcc/config/cr16/cr16.c @@ -1309,6 +1309,7 @@ cr16_address_cost (rtx addr, machine_mode mode ATTRIBUTE_UNUSED, case CR16_REGP_REL: cost += 2; /* Fall through. */ + gcc_fallthrough (); case CR16_REG_REL: cost += 3; if (address.disp) @@ -1575,6 +1576,7 @@ cr16_print_operand_address (FILE * file, machine_mode /*mode*/, rtx addr) case CR16_INDEX_REGP_REL: fprintf (file, "[%s]", reg_names[REGNO (address.index)]); /* Fall through. */ + gcc_fallthrough (); case CR16_REGP_REL: if (address.disp) { diff --git gcc/gcc/config/cris/cris.c gcc/gcc/config/cris/cris.c index 971d07f..447cfc9 100644 --- gcc/gcc/config/cris/cris.c +++ gcc/gcc/config/cris/cris.c @@ -961,6 +961,7 @@ cris_print_operand (FILE *file, rtx x, int code) and %E (and %e) and state passed between those modifiers. */ cris_output_insn_is_bound = 0; /* FALL THROUGH. */ + gcc_fallthrough (); case 'E': /* Print 's' if operand is SIGN_EXTEND or 'u' if ZERO_EXTEND unless cris_output_insn_is_bound is nonzero. */ @@ -2187,6 +2188,7 @@ cris_rtx_costs (rtx x, machine_mode mode, int outer_code, int opno, if (outer_code != COMPARE) return false; /* fall through */ + gcc_fallthrough (); case ZERO_EXTEND: case SIGN_EXTEND: *total = rtx_cost (XEXP (x, 0), VOIDmode, (enum rtx_code) outer_code, diff --git gcc/gcc/config/epiphany/epiphany.c gcc/gcc/config/epiphany/epiphany.c index f09a657..7f4a2ea 100644 --- gcc/gcc/config/epiphany/epiphany.c +++ gcc/gcc/config/epiphany/epiphany.c @@ -771,6 +771,7 @@ epiphany_rtx_costs (rtx x, machine_mode mode, int outer_code, return true; } /* FALLTHRU */ + gcc_fallthrough (); case CONST: case LABEL_REF: @@ -872,11 +873,13 @@ epiphany_address_cost (rtx addr, machine_mode mode, return 1; i >>= 1; /* Fall through. */ + gcc_fallthrough (); case 2: if (i & 1) return 1; i >>= 1; /* Fall through. */ + gcc_fallthrough (); case 1: return i < -7 || i > 7; } @@ -1352,6 +1355,7 @@ epiphany_print_operand (FILE *file, rtx x, int code) break; } /* Fall through. Let output_addr_const deal with it. */ + gcc_fallthrough (); case CONST_INT: fprintf(file,"%s",IMMEDIATE_PREFIX); if (code == 'C' || code == 'X') @@ -1361,6 +1365,7 @@ epiphany_print_operand (FILE *file, rtx x, int code) break; } /* Fall through */ + gcc_fallthrough (); default : output_addr_const (file, x); break; @@ -2421,6 +2426,7 @@ epiphany_mode_needed (int entity, rtx_insn *insn) if (recog_memoized (insn) == CODE_FOR_set_fp_mode) mode = (enum attr_fp_mode) epiphany_mode_after (entity, mode, insn); /* Fall through. */ + gcc_fallthrough (); case EPIPHANY_MSW_ENTITY_NEAREST: case EPIPHANY_MSW_ENTITY_TRUNC: if (mode == FP_MODE_ROUND_UNKNOWN) @@ -2469,6 +2475,7 @@ epiphany_mode_entry_exit (int entity, bool exit) || normal_mode == FP_MODE_ROUND_TRUNC) return FP_MODE_ROUND_UNKNOWN; /* Fall through. */ + gcc_fallthrough (); case EPIPHANY_MSW_ENTITY_NEAREST: case EPIPHANY_MSW_ENTITY_TRUNC: case EPIPHANY_MSW_ENTITY_ROUND_KNOWN: @@ -2715,6 +2722,7 @@ epiphany_insert_mode_switch_use (rtx_insn *insn, near = gen_rtx_USE (VOIDmode, gen_rtx_REG (SImode, FP_ANYFP_REGNUM)); trunc = copy_rtx (near); /* Fall through. */ + gcc_fallthrough (); case FP_MODE_INT: case FP_MODE_CALLER: near = gen_rtx_USE (VOIDmode, near); diff --git gcc/gcc/config/fr30/fr30.c gcc/gcc/config/fr30/fr30.c index f4fef2b..044a337 100644 --- gcc/gcc/config/fr30/fr30.c +++ gcc/gcc/config/fr30/fr30.c @@ -685,6 +685,7 @@ fr30_print_operand (FILE *file, rtx x, int code) } /* Fall through. Let output_addr_const deal with it. */ + gcc_fallthrough (); default: output_addr_const (file, x); break; diff --git gcc/gcc/config/frv/frv.c gcc/gcc/config/frv/frv.c index 957ff03..e3ce9bc 100644 --- gcc/gcc/config/frv/frv.c +++ gcc/gcc/config/frv/frv.c @@ -2990,6 +2990,7 @@ frv_print_operand (FILE * file, rtx x, int code) } /* Fall through. */ + gcc_fallthrough (); case '\0': if (GET_CODE (x) == REG) @@ -3336,6 +3337,7 @@ frv_legitimate_address_p_1 (machine_mode mode, break; /* Fall through. */ + gcc_fallthrough (); case REG: ret = frv_regno_ok_for_base_p (REGNO (x), strict_p); @@ -3396,6 +3398,7 @@ frv_legitimate_address_p_1 (machine_mode mode, break; /* Fall through. */ + gcc_fallthrough (); case REG: /* Do not allow reg+reg addressing for modes > 1 word if we @@ -4094,6 +4097,7 @@ frv_emit_movsi (rtx dest, rtx src) break; } /* Fall through. */ + gcc_fallthrough (); default: if (TARGET_GPREL_RO) unspec = R_FRV_GPREL12; @@ -9455,6 +9459,7 @@ frv_rtx_costs (rtx x, return true; } /* Fall through. */ + gcc_fallthrough (); case CONST: case LABEL_REF: diff --git gcc/gcc/config/h8300/h8300.c gcc/gcc/config/h8300/h8300.c index 1818684..0d83310 100644 --- gcc/gcc/config/h8300/h8300.c +++ gcc/gcc/config/h8300/h8300.c @@ -1744,6 +1744,7 @@ h8300_print_operand (FILE *file, rtx x, int code) processing bit operations on H8/300 or H8/300H because 'U' constraint does not allow bit operations on the tiny area on these machines. */ + gcc_fallthrough (); case 'X': case 'T': @@ -4109,6 +4110,7 @@ get_shift_alg (enum shift_type shift_type, enum shift_mode shift_mode, case SHIFT_INLINE: info->remainder = count; /* Fall through. */ + gcc_fallthrough (); case SHIFT_LOOP: /* It is up to the caller to know that looping clobbers cc. */ @@ -4624,6 +4626,7 @@ output_a_shift (rtx *operands) case SHIFT_SPECIAL: output_asm_insn (info.special, operands); /* Fall through. */ + gcc_fallthrough (); case SHIFT_INLINE: n = info.remainder; @@ -4805,6 +4808,7 @@ compute_a_shift_length (rtx insn ATTRIBUTE_UNUSED, rtx *operands) wlength++; /* Fall through. */ + gcc_fallthrough (); case SHIFT_INLINE: n = info.remainder; @@ -4942,6 +4946,7 @@ compute_a_shift_cc (rtx insn ATTRIBUTE_UNUSED, rtx *operands) return info.cc_special; /* Fall through. */ + gcc_fallthrough (); case SHIFT_INLINE: return info.cc_inline; diff --git gcc/gcc/config/ia64/ia64.c gcc/gcc/config/ia64/ia64.c index 6ab3400..e0f8be7 100644 --- gcc/gcc/config/ia64/ia64.c +++ gcc/gcc/config/ia64/ia64.c @@ -1889,6 +1889,7 @@ ia64_expand_vecint_compare (enum rtx_code code, machine_mode mode, code = reverse_condition (code); negate = true; /* FALLTHRU */ + gcc_fallthrough (); case LT: case LTU: @@ -2359,6 +2360,7 @@ ia64_expand_atomic_op (enum rtx_code code, rtx mem, rtx val, case MEMMODEL_SYNC_SEQ_CST: emit_insn (gen_memory_barrier ()); /* FALLTHRU */ + gcc_fallthrough (); case MEMMODEL_RELAXED: case MEMMODEL_ACQUIRE: case MEMMODEL_SYNC_ACQUIRE: @@ -5547,6 +5549,7 @@ ia64_print_operand (FILE * file, rtx x, int code) case POST_MODIFY: x = XEXP (x, 0); /* ... fall through ... */ + gcc_fallthrough (); case REG: fputs (reg_names [REGNO (x)], file); @@ -5648,6 +5651,7 @@ ia64_rtx_costs (rtx x, machine_mode mode, int outer_code, return true; } /* FALLTHRU */ + gcc_fallthrough (); case ASHIFT: case ASHIFTRT: @@ -6879,6 +6883,7 @@ group_barrier_needed (rtx_insn *insn) break; } /* FALLTHRU */ + gcc_fallthrough (); case INSN: if (GET_CODE (PATTERN (insn)) == USE @@ -11723,6 +11728,7 @@ ia64_expand_vec_perm_const (rtx operands[4]) if (d.perm[i] >= nelt) d.perm[i] -= nelt; /* FALLTHRU */ + gcc_fallthrough (); case 1: d.op1 = d.op0; diff --git gcc/gcc/config/ia64/predicates.md gcc/gcc/config/ia64/predicates.md index 02347f7..d2cb450 100644 --- gcc/gcc/config/ia64/predicates.md +++ gcc/gcc/config/ia64/predicates.md @@ -50,6 +50,7 @@ offset = INTVAL (XEXP (op, 1)); op = XEXP (op, 0); /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: if (CONSTANT_POOL_ADDRESS_P (op)) @@ -114,6 +115,7 @@ return false; op = XEXP (op, 0); /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: return SYMBOL_REF_LOCAL_P (op); @@ -137,6 +139,7 @@ return false; op = XEXP (op, 0); /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: return SYMBOL_REF_SMALL_ADDR_P (op); @@ -190,6 +193,7 @@ addend = INTVAL (XEXP (op, 1)); op = XEXP (op, 0); /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: /* These symbols shouldn't be used with got loads. */ @@ -272,6 +276,7 @@ return false; op = XEXP (op, 0); /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: return SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_INITIAL_EXEC; @@ -295,6 +300,7 @@ return false; op = XEXP (op, 0); /* FALLTHRU */ + gcc_fallthrough (); case SYMBOL_REF: return SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC; diff --git gcc/gcc/config/iq2000/iq2000.c gcc/gcc/config/iq2000/iq2000.c index 73b9cdb..9670103 100644 --- gcc/gcc/config/iq2000/iq2000.c +++ gcc/gcc/config/iq2000/iq2000.c @@ -804,6 +804,7 @@ iq2000_address_cost (rtx addr, machine_mode mode, addr_space_t as, } /* Fall through. */ + gcc_fallthrough (); case SYMBOL_REF: return SYMBOL_REF_FLAG (addr) ? 1 : 2; diff --git gcc/gcc/config/lm32/lm32.c gcc/gcc/config/lm32/lm32.c index 4a8079f..379b465 100644 --- gcc/gcc/config/lm32/lm32.c +++ gcc/gcc/config/lm32/lm32.c @@ -1122,6 +1122,7 @@ lm32_rtx_costs (rtx x, machine_mode mode, int outer_code, return true; } /* Fall through. */ + gcc_fallthrough (); default: if (satisfies_constraint_K (x)) @@ -1151,6 +1152,7 @@ lm32_rtx_costs (rtx x, machine_mode mode, int outer_code, break; } /* Fall through. */ + gcc_fallthrough (); case LABEL_REF: case CONST_DOUBLE: diff --git gcc/gcc/config/m32r/m32r.c gcc/gcc/config/m32r/m32r.c index b40c53c..487a6b5 100644 --- gcc/gcc/config/m32r/m32r.c +++ gcc/gcc/config/m32r/m32r.c @@ -1375,6 +1375,7 @@ m32r_rtx_costs (rtx x, machine_mode mode ATTRIBUTE_UNUSED, return true; } /* FALLTHRU */ + gcc_fallthrough (); case CONST: case LABEL_REF: @@ -2175,6 +2176,7 @@ m32r_print_operand (FILE * file, rtx x, int code) return; } /* fall through */ + gcc_fallthrough (); case LABEL_REF : fputs (code == 'T' ? "shigh(" : "low(", file); output_addr_const (file, x); @@ -2275,6 +2277,7 @@ m32r_print_operand (FILE * file, rtx x, int code) } /* Fall through. Let output_addr_const deal with it. */ + gcc_fallthrough (); default : output_addr_const (file, x); diff --git gcc/gcc/config/m68k/m68k.c gcc/gcc/config/m68k/m68k.c index 03f474e..1896290 100644 --- gcc/gcc/config/m68k/m68k.c +++ gcc/gcc/config/m68k/m68k.c @@ -6153,6 +6153,7 @@ m68k_sched_md_init_global (FILE *sched_dump ATTRIBUTE_UNUSED, sched_ib.filled = 0; /* FALLTHRU */ + gcc_fallthrough (); case CPU_CFV1: case CPU_CFV2: diff --git gcc/gcc/config/m68k/m68k.h gcc/gcc/config/m68k/m68k.h index 2aa858f..554bb2d 100644 --- gcc/gcc/config/m68k/m68k.h +++ gcc/gcc/config/m68k/m68k.h @@ -90,6 +90,7 @@ along with GCC; see the file COPYING3. If not see case u68020_60: \ builtin_define_std ("mc68060"); \ /* Fall through. */ \ + gcc_fallthrough (); \ case u68020_40: \ builtin_define_std ("mc68040"); \ builtin_define_std ("mc68030"); \ diff --git gcc/gcc/config/mips/mips.c gcc/gcc/config/mips/mips.c index df7b1da..2086d2a 100644 --- gcc/gcc/config/mips/mips.c +++ gcc/gcc/config/mips/mips.c @@ -2189,6 +2189,7 @@ mips_symbolic_constant_p (rtx x, enum mips_symbol_context context, return true; /* Fall through. */ + gcc_fallthrough (); case SYMBOL_GP_RELATIVE: /* Make sure that the offset refers to something within the @@ -2284,6 +2285,7 @@ mips_symbol_insns_1 (enum mips_symbol_type type, machine_mode mode) return 0; /* Fall through. */ + gcc_fallthrough (); case SYMBOL_GOT_PAGE_OFST: /* Unless -funit-at-a-time is in effect, we can't be sure whether the @@ -2847,6 +2849,7 @@ mips_const_insns (rtx x) && mips_const_vector_same_int_p (x, GET_MODE (x), -512, 511)) return 1; /* Fall through. */ + gcc_fallthrough (); case CONST_DOUBLE: /* Allow zeros for normal mode, where we can use $0. */ return !TARGET_MIPS16 && x == CONST0_RTX (GET_MODE (x)) ? 1 : 0; @@ -4023,6 +4026,7 @@ mips_set_reg_reg_cost (machine_mode mode) if (TARGET_HARD_FLOAT) return mips_set_reg_reg_piece_cost (mode, UNITS_PER_HWFPVALUE); /* Fall through */ + gcc_fallthrough (); default: return mips_set_reg_reg_piece_cost (mode, UNITS_PER_WORD); @@ -4096,6 +4100,7 @@ mips_rtx_costs (rtx x, machine_mode mode, int outer_code, } } /* Fall through. */ + gcc_fallthrough (); case CONST: case SYMBOL_REF: @@ -4209,6 +4214,7 @@ mips_rtx_costs (rtx x, machine_mode mode, int outer_code, } /* Fall through. */ + gcc_fallthrough (); case IOR: case XOR: @@ -4297,6 +4303,7 @@ mips_rtx_costs (rtx x, machine_mode mode, int outer_code, } } /* Fall through. */ + gcc_fallthrough (); case PLUS: if (float_mode_p) @@ -4395,6 +4402,7 @@ mips_rtx_costs (rtx x, machine_mode mode, int outer_code, return true; } /* Fall through. */ + gcc_fallthrough (); case SQRT: case MOD: @@ -4404,6 +4412,7 @@ mips_rtx_costs (rtx x, machine_mode mode, int outer_code, return false; } /* Fall through. */ + gcc_fallthrough (); case UDIV: case UMOD: @@ -13778,6 +13787,7 @@ mips_output_order_conditional_branch (rtx_insn *insn, rtx *operands, case LTU: inverted_p = !inverted_p; /* Fall through. */ + gcc_fallthrough (); case GE: case GEU: branch[!inverted_p] = MIPS_BRANCH_C ("b", "%0"); @@ -13801,6 +13811,7 @@ mips_output_order_conditional_branch (rtx_insn *insn, rtx *operands, case LEU: inverted_p = !inverted_p; /* Fall through. */ + gcc_fallthrough (); case GTU: if (TARGET_CB_MAYBE) { @@ -13818,6 +13829,7 @@ mips_output_order_conditional_branch (rtx_insn *insn, rtx *operands, case LTU: inverted_p = !inverted_p; /* Fall through. */ + gcc_fallthrough (); case GEU: if (TARGET_CB_MAYBE) { @@ -21196,6 +21208,7 @@ mips_expand_vec_perm_const (rtx operands[4]) if (!rtx_equal_p (d.op0, d.op1)) break; /* FALLTHRU */ + gcc_fallthrough (); case 2: for (i = 0; i < nelt; ++i) diff --git gcc/gcc/config/mmix/predicates.md gcc/gcc/config/mmix/predicates.md index 8e920c2..c856c46 100644 --- gcc/gcc/config/mmix/predicates.md +++ gcc/gcc/config/mmix/predicates.md @@ -117,6 +117,7 @@ && GET_MODE (XEXP (op, 1)) == VOIDmode))) return 1; /* Fall through. */ + gcc_fallthrough (); default: return mmix_address_operand (op, mode); } diff --git gcc/gcc/config/mn10300/mn10300.c gcc/gcc/config/mn10300/mn10300.c index 71815d6..befd623 100644 --- gcc/gcc/config/mn10300/mn10300.c +++ gcc/gcc/config/mn10300/mn10300.c @@ -397,6 +397,7 @@ mn10300_print_operand (FILE *file, rtx x, int code) break; } /* FALL THROUGH */ + gcc_fallthrough (); default: switch (GET_CODE (x)) @@ -2455,6 +2456,7 @@ mn10300_rtx_costs (rtx x, machine_mode mode, int outer_code, goto alldone; } /* FALLTHRU */ + gcc_fallthrough (); case ASHIFTRT: case LSHIFTRT: @@ -3011,6 +3013,7 @@ extract_bundle (rtx_insn *insn, struct liw_data * pdata) /* The AND, OR and XOR long instruction words only accept register arguments. */ allow_consts = false; /* Fall through. */ + gcc_fallthrough (); default: pdata->dest = SET_DEST (p); pdata->src = XEXP (SET_SRC (p), 1); diff --git gcc/gcc/config/mn10300/mn10300.md gcc/gcc/config/mn10300/mn10300.md index decda0e..e9f137c 100644 --- gcc/gcc/config/mn10300/mn10300.md +++ gcc/gcc/config/mn10300/mn10300.md @@ -306,6 +306,7 @@ && REGNO_EXTENDED_P (REGNO (operands[0]), 1)) return "movu %1,%0"; /* FALLTHRU */ + gcc_fallthrough (); case 5: case 6: case 2: @@ -454,6 +455,7 @@ return "movu %1,%0"; } /* FALLTHRU */ + gcc_fallthrough (); case 3: /* reg-reg */ case 4: /* reg-mem */ case 5: /* mem-reg */ diff --git gcc/gcc/config/msp430/msp430.c gcc/gcc/config/msp430/msp430.c index dba4d19..d260eb2 100644 --- gcc/gcc/config/msp430/msp430.c +++ gcc/gcc/config/msp430/msp430.c @@ -979,6 +979,7 @@ msp430_initial_elimination_offset (int from, int to) rv += cfun->machine->framesize_outgoing; rv += cfun->machine->framesize_locals; /* Fall through. */ + gcc_fallthrough (); case FRAME_POINTER_REGNUM: rv += cfun->machine->framesize_regs; /* Allow for the saved return address. */ @@ -996,6 +997,7 @@ msp430_initial_elimination_offset (int from, int to) /* Allow for the fall through above. */ rv -= (TARGET_LARGE ? 4 : 2); rv -= cfun->machine->framesize_regs; + gcc_fallthrough (); case ARG_POINTER_REGNUM: break; default: @@ -3651,6 +3653,7 @@ msp430_print_operand (FILE * file, rtx op, int letter) break; } /* Fall through. */ + gcc_fallthrough (); case CONST_INT: case SYMBOL_REF: case LABEL_REF: diff --git gcc/gcc/config/nds32/nds32-cost.c gcc/gcc/config/nds32/nds32-cost.c index e6a29fc..9d7a1d0 100644 --- gcc/gcc/config/nds32/nds32-cost.c +++ gcc/gcc/config/nds32/nds32-cost.c @@ -191,6 +191,7 @@ performance_cost: /* This is section for performance cost model. */ /* FALLTHRU, currently we use same cost model as size_cost. */ + gcc_fallthrough (); size_cost: /* This is section for size cost model. */ diff --git gcc/gcc/config/nios2/nios2.c gcc/gcc/config/nios2/nios2.c index 18fcbb3..3e5aed8 100644 --- gcc/gcc/config/nios2/nios2.c +++ gcc/gcc/config/nios2/nios2.c @@ -1975,11 +1975,13 @@ nios2_legitimate_address_p (machine_mode mode ATTRIBUTE_UNUSED, return false; /* Else, fall through. */ + gcc_fallthrough (); case CONST: if (gprel_constant_p (operand)) return true; /* Else, fall through. */ + gcc_fallthrough (); case LABEL_REF: case CONST_INT: case CONST_DOUBLE: @@ -2583,6 +2585,7 @@ nios2_print_operand (FILE *file, rtx op, int letter) } /* Else, fall through. */ + gcc_fallthrough (); case CONST: case LABEL_REF: diff --git gcc/gcc/config/pa/pa.c gcc/gcc/config/pa/pa.c index 1047f3d..a0e95bc 100644 --- gcc/gcc/config/pa/pa.c +++ gcc/gcc/config/pa/pa.c @@ -1530,6 +1530,7 @@ hppa_rtx_costs (rtx x, machine_mode mode, int outer_code, return true; } /* FALLTHRU */ + gcc_fallthrough (); case UDIV: case MOD: diff --git gcc/gcc/config/pdp11/pdp11.c gcc/gcc/config/pdp11/pdp11.c index ec3d61a..00e2e3a 100644 --- gcc/gcc/config/pdp11/pdp11.c +++ gcc/gcc/config/pdp11/pdp11.c @@ -905,6 +905,7 @@ pdp11_rtx_costs (rtx x, machine_mode mode, int outer_code ATTRIBUTE_UNUSED, return true; } /* FALLTHRU */ + gcc_fallthrough (); case CONST: case LABEL_REF: diff --git gcc/gcc/config/rl78/rl78-real.md gcc/gcc/config/rl78/rl78-real.md index 530b2fe..400431c 100644 --- gcc/gcc/config/rl78/rl78-real.md +++ gcc/gcc/config/rl78/rl78-real.md @@ -467,6 +467,7 @@ if (rl78_flags_already_set (operands[0], operands[1])) return "sk%C0\; br\t!!%3\; # cmpw eliminated"; /* else fall through. */ + gcc_fallthrough (); case 1: return "cmpw\t%1, %2\; sk%C0\; br\t!!%3"; case 2: diff --git gcc/gcc/config/rl78/rl78.c gcc/gcc/config/rl78/rl78.c index 3ddb198..936c6d8 100644 --- gcc/gcc/config/rl78/rl78.c +++ gcc/gcc/config/rl78/rl78.c @@ -928,6 +928,7 @@ characterize_address (rtx x, rtx *base, rtx *index, rtx *addend) return true; } /* fall through */ + gcc_fallthrough (); case MEM: case REG: return false; @@ -1259,6 +1260,7 @@ rl78_initial_elimination_offset (int from, int to) rv += cfun->machine->framesize_outgoing; rv += cfun->machine->framesize_locals; /* Fall through. */ + gcc_fallthrough (); case FRAME_POINTER_REGNUM: rv += cfun->machine->framesize_regs; rv += 4; diff --git gcc/gcc/config/rx/rx.c gcc/gcc/config/rx/rx.c index 8dfc885..b829f52 100644 --- gcc/gcc/config/rx/rx.c +++ gcc/gcc/config/rx/rx.c @@ -454,10 +454,12 @@ rx_print_operand_address (FILE * file, machine_mode /*mode*/, rtx addr) case UNSPEC: addr = XVECEXP (addr, 0, 0); /* Fall through. */ + gcc_fallthrough (); case LABEL_REF: case SYMBOL_REF: fprintf (file, "#"); /* Fall through. */ + gcc_fallthrough (); default: output_addr_const (file, addr); break; @@ -735,6 +737,7 @@ rx_print_operand (FILE * file, rtx op, int letter) gcc_assert (GET_MODE_SIZE (GET_MODE (op)) <= 4); unsigned_load = true; /* Fall through. */ + gcc_fallthrough (); case 'Q': if (MEM_P (op)) { @@ -797,6 +800,7 @@ rx_print_operand (FILE * file, rtx op, int letter) } /* Fall through. */ + gcc_fallthrough (); default: if (GET_CODE (op) == CONST @@ -910,6 +914,7 @@ rx_print_operand (FILE * file, rtx op, int letter) } } /* Fall through */ + gcc_fallthrough (); case CONST: case SYMBOL_REF: @@ -2787,15 +2792,19 @@ rx_option_override (void) case 4: fixed_regs[10] = call_used_regs [10] = 1; /* Fall through. */ + gcc_fallthrough (); case 3: fixed_regs[11] = call_used_regs [11] = 1; /* Fall through. */ + gcc_fallthrough (); case 2: fixed_regs[12] = call_used_regs [12] = 1; /* Fall through. */ + gcc_fallthrough (); case 1: fixed_regs[13] = call_used_regs [13] = 1; /* Fall through. */ + gcc_fallthrough (); case 0: rx_num_interrupt_regs = opt->value; break; diff --git gcc/gcc/config/s390/s390.c gcc/gcc/config/s390/s390.c index ee0187c..a99c7d4 100644 --- gcc/gcc/config/s390/s390.c +++ gcc/gcc/config/s390/s390.c @@ -1472,6 +1472,7 @@ s390_select_ccmode (enum rtx_code code, rtx op0, rtx op1) return CCAPmode; } /* Fall through. */ + gcc_fallthrough (); case UNORDERED: case ORDERED: case UNEQ: @@ -6684,6 +6685,7 @@ s390_expand_atomic (machine_mode mode, enum rtx_code code, val = expand_simple_binop (SImode, AND, val, ac.modemask, NULL_RTX, 1, OPTAB_DIRECT); /* FALLTHRU */ + gcc_fallthrough (); case SET: if (ac.aligned && MEM_P (val)) store_bit_field (new_rtx, GET_MODE_BITSIZE (mode), 0, diff --git gcc/gcc/config/sh/sh.c gcc/gcc/config/sh/sh.c index 0960a99..d10f469 100644 --- gcc/gcc/config/sh/sh.c +++ gcc/gcc/config/sh/sh.c @@ -1282,6 +1282,7 @@ sh_print_operand (FILE *stream, rtx x, int code) gcc_assert (MEM_P (x)); x = XEXP (x, 0); /* Fall through. */ + gcc_fallthrough (); case 'U': switch (GET_CODE (x)) { @@ -1338,6 +1339,7 @@ sh_print_operand (FILE *stream, rtx x, int code) break; } /* Fall through. */ + gcc_fallthrough (); default_output: default: @@ -1395,6 +1397,7 @@ sh_print_operand (FILE *stream, rtx x, int code) x = SUBREG_REG (x); /* Fall through. */ + gcc_fallthrough (); reg: case REG: @@ -2690,6 +2693,7 @@ output_branch (int logic, rtx_insn *insn, rtx *operands) return ""; } /* When relaxing, fall through. */ + gcc_fallthrough (); case 4: { char buffer[10]; @@ -3420,6 +3424,7 @@ sh_rtx_costs (rtx x, machine_mode mode ATTRIBUTE_UNUSED, int outer_code, return true; } /* Fall through. */ + gcc_fallthrough (); case XOR: case IOR: @@ -3455,6 +3460,7 @@ sh_rtx_costs (rtx x, machine_mode mode ATTRIBUTE_UNUSED, int outer_code, return true; } /* Fall through to shiftcosts. */ + gcc_fallthrough (); case ASHIFT: case ASHIFTRT: { diff --git gcc/gcc/config/sh/sh.md gcc/gcc/config/sh/sh.md index edc4d15..8c58669 100644 --- gcc/gcc/config/sh/sh.md +++ gcc/gcc/config/sh/sh.md @@ -5845,6 +5845,7 @@ break; } /* Fall through. */ + gcc_fallthrough (); case PLUS: emit_insn (gen_movsf_ie (reg0, operands[1])); @@ -5906,6 +5907,7 @@ break; } /* Fall through. */ + gcc_fallthrough (); case PLUS: /* Since REG+DISP addressing has already been decided upon by gcc diff --git gcc/gcc/config/sparc/sparc.c gcc/gcc/config/sparc/sparc.c index 1d2ecaa..66af776 100644 --- gcc/gcc/config/sparc/sparc.c +++ gcc/gcc/config/sparc/sparc.c @@ -11160,6 +11160,7 @@ sparc_rtx_costs (rtx x, machine_mode mode, int outer_code, return false; } /* FALLTHRU */ + gcc_fallthrough (); case ABS: case FLOAT: @@ -11656,6 +11657,7 @@ sparc_emit_membar_for_model (enum memmodel model, if (load_store == 3 && before_after == 1) implied |= StoreLoad; /* FALLTHRU */ + gcc_fallthrough (); case SMM_PSO: /* Partial Store Ordering: all memory transactions with load semantics @@ -11667,6 +11669,7 @@ sparc_emit_membar_for_model (enum memmodel model, if (load_store == 3 && before_after == 2) implied |= StoreLoad | StoreStore; /* FALLTHRU */ + gcc_fallthrough (); case SMM_RMO: /* Relaxed Memory Ordering: no implicit bits. */ diff --git gcc/gcc/config/spu/spu.c gcc/gcc/config/spu/spu.c index c3757eb..297be7e 100644 --- gcc/gcc/config/spu/spu.c +++ gcc/gcc/config/spu/spu.c @@ -3200,6 +3200,7 @@ classify_immediate (rtx op, machine_mode mode) && GET_CODE (CONST_VECTOR_ELT (op, i)) != CONST_DOUBLE) return IC_POOL; /* Fall through. */ + gcc_fallthrough (); case CONST_INT: case CONST_DOUBLE: diff --git gcc/gcc/config/tilegx/tilegx.c gcc/gcc/config/tilegx/tilegx.c index 06c832c..953ced6 100644 --- gcc/gcc/config/tilegx/tilegx.c +++ gcc/gcc/config/tilegx/tilegx.c @@ -2547,6 +2547,7 @@ tilegx_emit_cc_test (enum rtx_code code, rtx op0, rtx op1, if (n == -1) break; /* FALLTHRU */ + gcc_fallthrough (); case LTU: /* Change ((unsigned)x < 0x1000) into !((int)x >> 12), etc. @@ -5236,6 +5237,7 @@ tilegx_print_operand (FILE *file, rtx x, int code) } } /* FALLTHRU */ + gcc_fallthrough (); case 'h': { @@ -5386,6 +5388,7 @@ tilegx_print_operand (FILE *file, rtx x, int code) return; } /* FALLTHRU */ + gcc_fallthrough (); case 0: if (REG_P (x)) diff --git gcc/gcc/config/tilepro/tilepro.c gcc/gcc/config/tilepro/tilepro.c index 628cd04..7185dda 100644 --- gcc/gcc/config/tilepro/tilepro.c +++ gcc/gcc/config/tilepro/tilepro.c @@ -2351,6 +2351,7 @@ tilepro_emit_cc_test (enum rtx_code code, rtx op0, rtx op1, if (n == -1) break; /* FALLTHRU */ + gcc_fallthrough (); case LTU: /* Change ((unsigned)x < 0x1000) into !((unsigned)x >> 12), @@ -4792,6 +4793,7 @@ tilepro_print_operand (FILE *file, rtx x, int code) return; } /* FALLTHRU */ + gcc_fallthrough (); case 0: if (REG_P (x)) diff --git gcc/gcc/config/v850/v850.c gcc/gcc/config/v850/v850.c index e0e4215..9529e27 100644 --- gcc/gcc/config/v850/v850.c +++ gcc/gcc/config/v850/v850.c @@ -411,6 +411,7 @@ v850_print_operand (FILE * file, rtx x, int code) break; } /* Fall through. */ + gcc_fallthrough (); case 'b': case 'B': case 'C': diff --git gcc/gcc/config/vax/vax.c gcc/gcc/config/vax/vax.c index 804f0c7..35a62de 100644 --- gcc/gcc/config/vax/vax.c +++ gcc/gcc/config/vax/vax.c @@ -785,6 +785,7 @@ vax_rtx_costs (rtx x, machine_mode mode, int outer_code, return true; } /* FALLTHRU */ + gcc_fallthrough (); case CONST: case LABEL_REF: diff --git gcc/gcc/config/visium/visium.c gcc/gcc/config/visium/visium.c index 6712fed..be91ad7 100644 --- gcc/gcc/config/visium/visium.c +++ gcc/gcc/config/visium/visium.c @@ -2219,6 +2219,7 @@ visium_expand_int_cstore (rtx *operands, enum machine_mode mode) reverse = true; /* ... fall through ... */ + gcc_fallthrough (); case LTU: case GTU: @@ -2267,6 +2268,7 @@ visium_expand_fp_cstore (rtx *operands, reverse = true; /* ... fall through ... */ + gcc_fallthrough (); case LT: case GT: diff --git gcc/gcc/config/xtensa/xtensa.c gcc/gcc/config/xtensa/xtensa.c index 64d089b..fa0140e 100644 --- gcc/gcc/config/xtensa/xtensa.c +++ gcc/gcc/config/xtensa/xtensa.c @@ -1565,6 +1565,7 @@ xtensa_expand_atomic (enum rtx_code code, rtx target, rtx mem, rtx val, val = expand_simple_binop (SImode, AND, val, ac.modemask, NULL_RTX, 1, OPTAB_DIRECT); /* FALLTHRU */ + gcc_fallthrough (); case SET: tmp = expand_simple_binop (SImode, AND, old, ac.modemaski, NULL_RTX, 1, OPTAB_DIRECT); @@ -2424,6 +2425,7 @@ print_operand (FILE *file, rtx x, int letter) } /* fall through */ + gcc_fallthrough (); default: if (GET_CODE (x) == REG || GET_CODE (x) == SUBREG) @@ -3739,6 +3741,7 @@ xtensa_rtx_costs (rtx x, machine_mode mode, int outer_code, } } /* Fall through. */ + gcc_fallthrough (); case UDIV: case UMOD: