On Tue, Sep 27, 2016 at 10:02:03AM +0200, Richard Biener wrote: > > ix86_simd_clone_usable): Remove break after return.
And after scripting this a little bit: #/bin/awk -f /^[[:blank:]]+return[[:blank:]]/ { L1=$0; PP=gensub(/^([[:blank:]]+)return.*$/,"\\1","",L1); next; } /^[[:blank:]]+break/ { if (PP) { PQ=gensub(/^([[:blank:]]+)break.*$/,"\\1","",$0); if (PP == PQ) { print L1; print $0 } PP=""; } next } { PP=""; } I found lots of other spots where we have useless break; right after return stmt. IMHO it is just too confusing to keep them around, ok for trunk if this passes bootstrap/regtest? 2016-09-27 Jakub Jelinek <ja...@redhat.com> * auto-inc-dec.c (try_merge): Remove break after return. * cselib.c (autoinc_split): Likewise. * explow.c (promote_mode): Likewise. * fixed-value.c (fixed_arithmetic): Likewise. * hsa.c (hsa_internal_fn::get_arity): Likewise. * rtlanal.c (modified_between_p, modified_in_p): Likewise. * trans-mem.c (get_attrs_for): Likewise. * tree-if-conv.c (if_convertible_stmt_p): Likewise. * tree-vrp.c (simplify_stmt_using_ranges): Likewise. * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise. * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise. * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise. * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise. * config/cris/cris.c (cris_op_str): Likewise. * config/mn10300/mn10300.c (cc_flags_for_code): Likewise. * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise. c-family/ * c-ada-spec.c (print_ada_declaration): Remove break after return. objc/ * objc-act.c (continue_class): Remove break after return. (objc_maybe_printable_name): Likewise. fortran/ * dependency.c (gfc_dep_compare_expr): Remove break after return. * frontend-passes.c (optimize_op): Likewise. * interface.c (gfc_current_interface_head): Likewise. * symbol.c (check_conflict): Likewise. * trans-intrinsic.c (build_fix_expr): Likewise. ada/ * terminals.c (is_gui_app): Remove break after return. --- gcc/auto-inc-dec.c.jj 2016-01-04 14:55:53.000000000 +0100 +++ gcc/auto-inc-dec.c 2016-09-27 10:29:15.510619645 +0200 @@ -658,25 +658,21 @@ try_merge (void) if (dump_file) fprintf (dump_file, "trying SIMPLE_PRE_INC\n"); return attempt_change (gen_rtx_PRE_INC (reg_mode, inc_reg), inc_reg); - break; case SIMPLE_POST_INC: /* size++ */ if (dump_file) fprintf (dump_file, "trying SIMPLE_POST_INC\n"); return attempt_change (gen_rtx_POST_INC (reg_mode, inc_reg), inc_reg); - break; case SIMPLE_PRE_DEC: /* --size */ if (dump_file) fprintf (dump_file, "trying SIMPLE_PRE_DEC\n"); return attempt_change (gen_rtx_PRE_DEC (reg_mode, inc_reg), inc_reg); - break; case SIMPLE_POST_DEC: /* size-- */ if (dump_file) fprintf (dump_file, "trying SIMPLE_POST_DEC\n"); return attempt_change (gen_rtx_POST_DEC (reg_mode, inc_reg), inc_reg); - break; case DISP_PRE: /* ++con */ if (dump_file) @@ -687,7 +683,6 @@ try_merge (void) inc_reg, inc_insn.reg1)), inc_reg); - break; case DISP_POST: /* con++ */ if (dump_file) @@ -698,7 +693,6 @@ try_merge (void) inc_reg, inc_insn.reg1)), inc_reg); - break; case REG_PRE: /* ++reg */ if (dump_file) @@ -709,7 +703,6 @@ try_merge (void) inc_reg, inc_insn.reg1)), inc_reg); - break; case REG_POST: /* reg++ */ if (dump_file) @@ -720,7 +713,6 @@ try_merge (void) inc_reg, inc_insn.reg1)), inc_reg); - break; } } --- gcc/cselib.c.jj 2016-08-10 00:21:08.000000000 +0200 +++ gcc/cselib.c 2016-09-27 10:29:42.125282563 +0200 @@ -805,7 +805,6 @@ autoinc_split (rtx x, rtx *off, machine_ *off = GEN_INT (-GET_MODE_SIZE (memmode)); return XEXP (x, 0); - break; case PRE_INC: if (memmode == VOIDmode) --- gcc/explow.c.jj 2016-09-05 19:27:05.000000000 +0200 +++ gcc/explow.c 2016-09-27 10:30:05.435987326 +0200 @@ -802,7 +802,6 @@ promote_mode (const_tree type ATTRIBUTE_ PROMOTE_MODE (mode, unsignedp, type); *punsignedp = unsignedp; return mode; - break; #ifdef POINTERS_EXTEND_UNSIGNED case REFERENCE_TYPE: @@ -810,7 +809,6 @@ promote_mode (const_tree type ATTRIBUTE_ *punsignedp = POINTERS_EXTEND_UNSIGNED; return targetm.addr_space.address_mode (TYPE_ADDR_SPACE (TREE_TYPE (type))); - break; #endif default: --- gcc/fixed-value.c.jj 2016-01-04 14:55:52.000000000 +0100 +++ gcc/fixed-value.c 2016-09-27 10:30:22.692768763 +0200 @@ -730,35 +730,28 @@ fixed_arithmetic (FIXED_VALUE_TYPE *f, i { case NEGATE_EXPR: return do_fixed_neg (f, op0, sat_p); - break; case PLUS_EXPR: gcc_assert (op0->mode == op1->mode); return do_fixed_add (f, op0, op1, false, sat_p); - break; case MINUS_EXPR: gcc_assert (op0->mode == op1->mode); return do_fixed_add (f, op0, op1, true, sat_p); - break; case MULT_EXPR: gcc_assert (op0->mode == op1->mode); return do_fixed_multiply (f, op0, op1, sat_p); - break; case TRUNC_DIV_EXPR: gcc_assert (op0->mode == op1->mode); return do_fixed_divide (f, op0, op1, sat_p); - break; case LSHIFT_EXPR: return do_fixed_shift (f, op0, op1, true, sat_p); - break; case RSHIFT_EXPR: return do_fixed_shift (f, op0, op1, false, sat_p); - break; default: gcc_unreachable (); --- gcc/hsa.c.jj 2016-04-01 17:21:31.000000000 +0200 +++ gcc/hsa.c 2016-09-27 10:30:43.226508698 +0200 @@ -947,7 +947,6 @@ hsa_internal_fn::get_arity () case IFN_SCALB: case IFN_LDEXP: return 2; - break; case IFN_CLRSB: case IFN_CLZ: case IFN_CTZ: --- gcc/rtlanal.c.jj 2016-09-16 22:19:38.000000000 +0200 +++ gcc/rtlanal.c 2016-09-27 10:31:56.008586891 +0200 @@ -1244,7 +1244,6 @@ modified_between_p (const_rtx x, const r if (memory_modified_in_insn_p (x, insn)) return 1; return 0; - break; case REG: return reg_set_between_p (x, start, end); @@ -1299,7 +1298,6 @@ modified_in_p (const_rtx x, const_rtx in if (memory_modified_in_insn_p (x, insn)) return 1; return 0; - break; case REG: return reg_set_p (x, insn); --- gcc/trans-mem.c.jj 2016-05-03 14:12:19.000000000 +0200 +++ gcc/trans-mem.c 2016-09-27 10:32:09.775412530 +0200 @@ -165,7 +165,6 @@ get_attrs_for (const_tree x) { case FUNCTION_DECL: return TYPE_ATTRIBUTES (TREE_TYPE (x)); - break; default: if (TYPE_P (x)) --- gcc/tree-if-conv.c.jj 2016-08-18 12:45:22.000000000 +0200 +++ gcc/tree-if-conv.c 2016-09-27 10:32:23.708236066 +0200 @@ -1050,7 +1050,6 @@ if_convertible_stmt_p (gimple *stmt, vec print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM); } return false; - break; } return true; --- gcc/tree-vrp.c.jj 2016-09-27 09:46:07.000000000 +0200 +++ gcc/tree-vrp.c 2016-09-27 10:32:46.822943312 +0200 @@ -10215,7 +10215,6 @@ simplify_stmt_using_ranges (gimple_stmt_ case MIN_EXPR: case MAX_EXPR: return simplify_min_or_max_using_ranges (stmt); - break; default: break; --- gcc/config/aarch64/aarch64-builtins.c.jj 2016-09-13 19:06:26.000000000 +0200 +++ gcc/config/aarch64/aarch64-builtins.c 2016-09-27 10:52:44.303729325 +0200 @@ -1460,7 +1460,6 @@ aarch64_fold_builtin (tree fndecl, int n { BUILTIN_VDQF (UNOP, abs, 2) return fold_build1 (ABS_EXPR, type, args[0]); - break; VAR1 (UNOP, floatv2si, 2, v2sf) VAR1 (UNOP, floatv4si, 2, v4sf) VAR1 (UNOP, floatv2di, 2, v2df) --- gcc/config/aarch64/aarch64.c.jj 2016-09-27 09:46:13.000000000 +0200 +++ gcc/config/aarch64/aarch64.c 2016-09-27 10:52:58.014555073 +0200 @@ -4433,7 +4433,6 @@ aarch64_get_condition_code_1 (enum machi default: return -1; - break; } return -1; --- gcc/config/c6x/c6x.c.jj 2016-09-23 09:32:16.000000000 +0200 +++ gcc/config/c6x/c6x.c 2016-09-27 10:53:18.782291133 +0200 @@ -1987,17 +1987,13 @@ c6x_get_unit_specifier (rtx_insn *insn) case UNITS_DLS: case UNITS_D_ADDR: return 'd'; - break; case UNITS_L: case UNITS_LS: return 'l'; - break; case UNITS_S: return 's'; - break; case UNITS_M: return 'm'; - break; default: gcc_unreachable (); } --- gcc/config/cr16/cr16.c.jj 2016-09-14 16:01:10.000000000 +0200 +++ gcc/config/cr16/cr16.c 2016-09-27 10:53:43.110981802 +0200 @@ -1120,10 +1120,8 @@ legitimate_pic_operand_p (rtx x) { case SYMBOL_REF: return 0; - break; case LABEL_REF: return 0; - break; case CONST: /* REVISIT: Use something like symbol_referenced_p. */ if (GET_CODE (XEXP (x, 0)) == PLUS @@ -1134,7 +1132,6 @@ legitimate_pic_operand_p (rtx x) break; case MEM: return legitimate_pic_operand_p (XEXP (x, 0)); - break; default: break; } --- gcc/config/cris/cris.c.jj 2016-09-23 09:32:16.000000000 +0200 +++ gcc/config/cris/cris.c 2016-09-27 10:54:07.405672880 +0200 @@ -544,11 +544,9 @@ cris_op_str (rtx x) { case PLUS: return "add"; - break; case MINUS: return "sub"; - break; case MULT: /* This function is for retrieving a part of an instruction name for @@ -560,46 +558,36 @@ cris_op_str (rtx x) case DIV: return "div"; - break; case AND: return "and"; - break; case IOR: return "or"; - break; case XOR: return "xor"; - break; case NOT: return "not"; - break; case ASHIFT: return "lsl"; - break; case LSHIFTRT: return "lsr"; - break; case ASHIFTRT: return "asr"; - break; case UMIN: /* Used to control the sign/zero-extend character for the 'E' modifier. BOUND has none. */ cris_output_insn_is_bound = 1; return "bound"; - break; default: return "Unknown operator"; - break; } } --- gcc/config/mn10300/mn10300.c.jj 2016-09-14 16:01:09.000000000 +0200 +++ gcc/config/mn10300/mn10300.c 2016-09-27 10:54:30.375380805 +0200 @@ -2693,7 +2693,6 @@ cc_flags_for_code (enum rtx_code code) case LT: /* N */ case GE: /* ~N */ return CC_FLAG_N; - break; case GT: /* ~(Z|(N^V)) */ case LE: /* Z|(N^V) */ --- gcc/config/tilepro/tilepro.c.jj 2016-09-14 16:01:09.000000000 +0200 +++ gcc/config/tilepro/tilepro.c 2016-09-27 10:54:52.187103456 +0200 @@ -2137,13 +2137,11 @@ tilepro_emit_setcc_internal_di (rtx res, emit_insn (gen_insn_seq (tmp1, hi_half[0], hi_half[1])); emit_insn (gen_andsi3 (res, tmp0, tmp1)); return true; - break; case NE: emit_insn (gen_insn_sne (tmp0, lo_half[0], lo_half[1])); emit_insn (gen_insn_sne (tmp1, hi_half[0], hi_half[1])); emit_insn (gen_iorsi3 (res, tmp0, tmp1)); return true; - break; case LE: emit_insn (gen_insn_slte (tmp0, hi_half[0], hi_half[1])); emit_insn (gen_insn_seq (tmp1, hi_half[0], hi_half[1])); --- gcc/c-family/c-ada-spec.c.jj 2016-09-02 18:17:27.000000000 +0200 +++ gcc/c-family/c-ada-spec.c 2016-09-27 10:50:05.265750558 +0200 @@ -2902,7 +2902,6 @@ print_ada_declaration (pretty_printer *b pp_string (buffer, "-- skipped function type "); dump_generic_ada_node (buffer, t, type, spc, false, true); return 1; - break; case ENUMERAL_TYPE: if ((orig && TYPE_NAME (orig) && orig != TREE_TYPE (t)) --- gcc/objc/objc-act.c.jj 2016-06-07 17:44:04.000000000 +0200 +++ gcc/objc/objc-act.c 2016-09-27 10:52:23.992987457 +0200 @@ -7054,7 +7054,6 @@ continue_class (tree klass) #endif /* OBJCPLUS */ return get_class_ivars (implementation_template, true); - break; } case CLASS_INTERFACE_TYPE: { @@ -7070,7 +7069,6 @@ continue_class (tree klass) pop_lang_context (); #endif /* OBJCPLUS */ return NULL_TREE; - break; } default: return error_mark_node; @@ -9279,7 +9277,6 @@ objc_maybe_printable_name (tree decl, in { case FUNCTION_DECL: return objc_demangle (IDENTIFIER_POINTER (DECL_NAME (decl))); - break; /* The following happens when we are printing a deprecation warning for a method. The warn_deprecation() will end up @@ -9294,17 +9291,14 @@ objc_maybe_printable_name (tree decl, in case INSTANCE_METHOD_DECL: case CLASS_METHOD_DECL: return IDENTIFIER_POINTER (DECL_NAME (decl)); - break; /* This happens when printing a deprecation warning for a property. We may want to consider some sort of pretty printing (eg, include the class name where it was declared ?). */ case PROPERTY_DECL: return IDENTIFIER_POINTER (PROPERTY_NAME (decl)); - break; default: return NULL; - break; } } --- gcc/fortran/dependency.c.jj 2016-09-26 12:06:44.000000000 +0200 +++ gcc/fortran/dependency.c 2016-09-27 10:50:34.163383295 +0200 @@ -486,7 +486,6 @@ gfc_dep_compare_expr (gfc_expr *e1, gfc_ case EXPR_FUNCTION: return gfc_dep_compare_functions (e1, e2, false); - break; default: return -2; --- gcc/fortran/frontend-passes.c.jj 2016-09-26 12:06:44.000000000 +0200 +++ gcc/fortran/frontend-passes.c 2016-09-27 10:50:48.976195037 +0200 @@ -1491,7 +1491,6 @@ optimize_op (gfc_expr *e) case INTRINSIC_POWER: return optimize_power (e); - break; default: break; --- gcc/fortran/interface.c.jj 2016-09-27 09:46:11.000000000 +0200 +++ gcc/fortran/interface.c 2016-09-27 10:51:11.692906327 +0200 @@ -4306,16 +4306,13 @@ gfc_current_interface_head (void) { case INTERFACE_INTRINSIC_OP: return current_interface.ns->op[current_interface.op]; - break; case INTERFACE_GENERIC: case INTERFACE_DTIO: return current_interface.sym->generic; - break; case INTERFACE_USER_OP: return current_interface.uop->op; - break; default: gcc_unreachable (); --- gcc/fortran/symbol.c.jj 2016-09-26 12:06:44.000000000 +0200 +++ gcc/fortran/symbol.c 2016-09-27 10:51:20.103799432 +0200 @@ -464,7 +464,6 @@ check_conflict (symbol_attribute *attr, gfc_error ("Namelist group name at %L cannot have the " "SAVE attribute", where); return false; - break; case FL_PROCEDURE: /* Conflicts between SAVE and PROCEDURE will be checked at resolution stage, see "resolve_fl_procedure". */ --- gcc/fortran/trans-intrinsic.c.jj 2016-09-23 18:55:40.000000000 +0200 +++ gcc/fortran/trans-intrinsic.c 2016-09-27 10:51:32.725639020 +0200 @@ -410,19 +410,15 @@ build_fix_expr (stmtblock_t * pblock, tr { case RND_FLOOR: return build_fixbound_expr (pblock, arg, type, 0); - break; case RND_CEIL: return build_fixbound_expr (pblock, arg, type, 1); - break; case RND_ROUND: return build_round_expr (arg, type); - break; case RND_TRUNC: return fold_build1_loc (input_location, FIX_TRUNC_EXPR, type, arg); - break; default: gcc_unreachable (); --- gcc/ada/terminals.c.jj 2016-02-12 00:50:55.000000000 +0100 +++ gcc/ada/terminals.c 2016-09-27 10:33:42.042243943 +0200 @@ -289,34 +289,27 @@ is_gui_app (char *exe) { case IMAGE_SUBSYSTEM_UNKNOWN: return 1; - break; case IMAGE_SUBSYSTEM_NATIVE: return 1; - break; case IMAGE_SUBSYSTEM_WINDOWS_GUI: return 1; - break; case IMAGE_SUBSYSTEM_WINDOWS_CUI: return 0; - break; case IMAGE_SUBSYSTEM_OS2_CUI: return 0; - break; case IMAGE_SUBSYSTEM_POSIX_CUI: return 0; - break; default: /* Unknown, return GUI app to be preservative: if yes, it will be correctly launched, if no, it will be launched, and a console will be also displayed, which is not a big deal */ return 1; - break; } } Jakub