re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
authorMarek Polacek <polacek@redhat.com>
Fri, 12 Aug 2016 10:30:47 +0000 (10:30 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Fri, 12 Aug 2016 10:30:47 +0000 (10:30 +0000)
PR c/7652
gcc/
* alias.c (find_base_value): Adjust fall through comment.
* cfgexpand.c (expand_debug_expr): Likewise.
* combine.c (find_split_point): Likewise.
(expand_compound_operation): Likewise.  Add FALLTHRU.
(make_compound_operation): Adjust fall through comment.
(canon_reg_for_combine): Add FALLTHRU.
(force_to_mode): Adjust fall through comment.
(simplify_shift_const_1): Likewise.
(simplify_comparison): Likewise.
* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
FALLTHRU.
* config/aarch64/predicates.md: Likewise.
* config/i386/i386.c (function_arg_advance_32): Likewise.
(ix86_gimplify_va_arg): Likewise.
(print_reg): Likewise.
(ix86_print_operand): Likewise.
(ix86_build_const_vector): Likewise.
(ix86_expand_branch): Likewise.
(ix86_sched_init_global): Adjust fall through comment.
(ix86_expand_args_builtin): Add FALLTHRU.
(ix86_expand_builtin): Likewise.
(ix86_expand_vector_init_one_var): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
(rs6000_adjust_cost): Likewise.
(insn_must_be_first_in_group): Likewise.
* config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
* dbxout.c (dbxout_symbol): Adjust fall through comment.
* df-scan.c (df_uses_record): Likewise.
* dojump.c (do_jump): Add FALLTHRU.
* dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
comment.
(resolve_args_picking_1): Adjust fall through comment.
(loc_list_from_tree_1): Likewise.
* expmed.c (make_tree): Likewise.
* expr.c (expand_expr_real_2): Add FALLTHRU.
(expand_expr_real_1): Likewise.  Adjust fall through comment.
* fold-const.c (const_binop): Adjust fall through comment.
(fold_truth_not_expr): Likewise.
(fold_cond_expr_with_comparison): Add FALLTHRU.
(fold_binary_loc): Likewise.
(contains_label_1): Adjust fall through comment.
(multiple_of_p): Likewise.
* gcov-tool.c (process_args): Add FALLTHRU.
* genattrtab.c (check_attr_test): Likewise.
(write_test_expr): Likewise.
* genconfig.c (walk_insn_part): Likewise.
* genpreds.c (validate_exp): Adjust fall through comment.
(needs_variable): Likewise.
* gensupport.c (get_alternatives_number): Add FALLTHRU.
(subst_dup): Likewise.
* gimple-pretty-print.c (dump_gimple_assign): Likewise.
* gimplify.c (gimplify_addr_expr): Adjust fall through comment.
(gimplify_scan_omp_clauses): Add FALLTHRU.
(goa_stabilize_expr): Likewise.
* graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
through comment.
* hsa-gen.c (get_address_from_value): Likewise.
* ipa-icf.c (sem_function::hash_stmt): Likewise.
* ira.c (ira_setup_alts): Add FALLTHRU.
* lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
comment.
* lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
* opts.c (common_handle_option): Likewise.
* read-rtl.c (read_rtx_code): Likewise.
* real.c (round_for_format): Likewise.
* recog.c (asm_operand_ok): Likewise.
* reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
* reload1.c (set_label_offsets): Likewise.
(eliminate_regs_1): Likewise.
(reload_reg_reaches_end_p): Likewise.
* rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
(rtx_cost): Likewise.
* sched-rgn.c (is_exception_free): Likewise.
* simplify-rtx.c (simplify_rtx): Adjust fall through comment.
* stor-layout.c (int_mode_for_mode): Likewise.
* toplev.c (print_to_asm_out_file): Likewise.
(print_to_stderr): Likewise.
* tree-cfg.c (gimple_verify_flow_info): Likewise.
* tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
(chrec_fold_multiply): Likewise.
(evolution_function_is_invariant_rec_p): Likewise.
(for_each_scev_op): Likewise.
* tree-data-ref.c (siv_subscript_p): Likewise.
(get_references_in_stmt): Likewise.
* tree.c (find_placeholder_in_expr): Adjust fall through comment.
(substitute_in_expr): Likewise.
(type_cache_hasher::equal): Likewise.
(walk_type_fields): Likewise.
* var-tracking.c (adjust_mems): Add FALLTHRU.
(set_dv_changed): Adjust fall through comment.
* varasm.c (default_function_section): Add FALLTHRU.
gcc/c-family/
* c-common.c (scalar_to_vector): Adjust fall through comment.
* c-opts.c (c_common_handle_option): Likewise.
* c-pragma.c (handle_pragma_pack): Add FALLTHRU.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
fall through comment.
* cilk.c (extract_free_variables): Add FALLTHRU.
gcc/c/
* c-parser.c (c_parser_external_declaration): Add FALLTHRU.
(c_parser_postfix_expression): Likewise.
* c-typeck.c (build_unary_op): Adjust fall through comment.
(c_mark_addressable): Likewise.
gcc/cp/
* call.c (add_builtin_candidate): Add FALLTHRU.
(build_integral_nontype_arg_conv): Adjust fall through comment.
(build_new_op_1): Add FALLTHRU.
(convert_like_real): Adjust fall through comment.
* class.c (fixed_type_or_null): Likewise.
* constexpr.c (cxx_eval_constant_expression): Likewise.
(potential_constant_expression_1): Likewise.  Add FALLTHRU.
* cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment.
(cp_fold): Add FALLTHRU.
* cvt.c (build_expr_type_conversion): Adjust fall through comment.
* cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU.
(pp_cxx_qualified_id): Likewise.
(cxx_pretty_printer::constant): Adjust fall through comment.
(cxx_pretty_printer::primary_expression): Add FALLTHRU.
(pp_cxx_pm_expression): Adjust fall through comment.
(cxx_pretty_printer::expression): Add FALLTHRU.
(cxx_pretty_printer::declaration_specifiers): Reformat code.
(pp_cxx_type_specifier_seq): Adjust fall through comment.
(pp_cxx_ptr_operator): Likewise.  Add FALLTHRU.
* error.c (dump_type): Adjust fall through comment.
(dump_decl): Likewise.
* mangle.c (write_type): Likewise.
* method.c (synthesized_method_walk): Add FALLTHRU.
* name-lookup.c (arg_assoc_type): Likewise.
* parser.c (cp_lexer_print_token): Adjust fall through comment.
(cp_parser_primary_expression): Add FALLTHRU.
(cp_parser_operator): Likewise.
* pt.c (find_parameter_packs_r): Likewise.
(tsubst_aggr_type): Adjust fall through comment.
* semantics.c (finish_omp_clauses): Add FALLTHRU.
* tree.c (lvalue_kind): Likewise.
gcc/fortran/
* decl.c (match_attr_spec): Add FALLTHRU.
* primary.c (match_arg_list_function): Likewise.
* resolve.c (resolve_operator): Adjust fall through comment.
(fixup_charlen): Add FALLTHRU.
(resolve_allocate_expr): Adjust fall through comment.
* trans-array.c (gfc_conv_ss_startstride): Add FALLTHRU.
* trans-intrinsic.c (gfc_conv_intrinsic_len): Adjust fall through
comment.
gcc/java/
* expr.c (java_truthvalue_conversion): Adjust fall through comment.
* jcf-io.c (verify_constant_pool): Likewise.
* typeck.c (promote_type): Likewise.
gcc/objc/
* objc-encoding.c (encode_type): Add FALLTHRU.
libcpp/
* lex.c (search_line_fast): Add FALLTHRU.
(_cpp_lex_direct): Likewise.
(cpp_token_val_index): Adjust fall through comment.
* macro.c (parse_params): Add FALLTHRU.
* pch.c (count_defs): Adjust fall through comment.
(write_defs): Likewise.
libiberty/
* cp-demangle.c (d_print_mod): Add FALLTHRU.

From-SVN: r239410

88 files changed:
gcc/ChangeLog
gcc/alias.c
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-opts.c
gcc/c-family/c-pragma.c
gcc/c-family/c-pretty-print.c
gcc/c-family/cilk.c
gcc/c/ChangeLog
gcc/c/c-parser.c
gcc/c/c-typeck.c
gcc/cfgexpand.c
gcc/combine.c
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/predicates.md
gcc/config/i386/i386.c
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/constexpr.c
gcc/cp/cp-gimplify.c
gcc/cp/cvt.c
gcc/cp/cxx-pretty-print.c
gcc/cp/error.c
gcc/cp/mangle.c
gcc/cp/method.c
gcc/cp/name-lookup.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/semantics.c
gcc/cp/tree.c
gcc/dbxout.c
gcc/df-scan.c
gcc/dojump.c
gcc/dwarf2out.c
gcc/expmed.c
gcc/expr.c
gcc/fold-const.c
gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/fortran/primary.c
gcc/fortran/resolve.c
gcc/fortran/trans-array.c
gcc/fortran/trans-intrinsic.c
gcc/gcov-tool.c
gcc/genattrtab.c
gcc/genconfig.c
gcc/genpreds.c
gcc/gensupport.c
gcc/gimple-pretty-print.c
gcc/gimplify.c
gcc/graphite-isl-ast-to-gimple.c
gcc/hsa-gen.c
gcc/ipa-icf.c
gcc/ira.c
gcc/java/ChangeLog
gcc/java/expr.c
gcc/java/jcf-io.c
gcc/java/typeck.c
gcc/lra-eliminations.c
gcc/lto-streamer-out.c
gcc/objc/ChangeLog
gcc/objc/objc-encoding.c
gcc/opts.c
gcc/read-rtl.c
gcc/real.c
gcc/recog.c
gcc/reginfo.c
gcc/reload1.c
gcc/rtlanal.c
gcc/sched-rgn.c
gcc/simplify-rtx.c
gcc/stor-layout.c
gcc/toplev.c
gcc/tree-cfg.c
gcc/tree-chrec.c
gcc/tree-data-ref.c
gcc/tree.c
gcc/var-tracking.c
gcc/varasm.c
libcpp/ChangeLog
libcpp/lex.c
libcpp/macro.c
libcpp/pch.c
libiberty/ChangeLog
libiberty/cp-demangle.c

index 4f45c06f8b476942e273f8f89849d17c2dcd6385..165e183b68c29d302b729529d4fe356eef88bcf0 100644 (file)
@@ -1,3 +1,98 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * alias.c (find_base_value): Adjust fall through comment.
+       * cfgexpand.c (expand_debug_expr): Likewise.
+       * combine.c (find_split_point): Likewise.
+       (expand_compound_operation): Likewise.  Add FALLTHRU.
+       (make_compound_operation): Adjust fall through comment.
+       (canon_reg_for_combine): Add FALLTHRU.
+       (force_to_mode): Adjust fall through comment.
+       (simplify_shift_const_1): Likewise.
+       (simplify_comparison): Likewise.
+       * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
+       FALLTHRU.
+       * config/aarch64/predicates.md: Likewise.
+       * config/i386/i386.c (function_arg_advance_32): Likewise.
+       (ix86_gimplify_va_arg): Likewise.
+       (print_reg): Likewise.
+       (ix86_print_operand): Likewise.
+       (ix86_build_const_vector): Likewise.
+       (ix86_expand_branch): Likewise.
+       (ix86_sched_init_global): Adjust fall through comment.
+       (ix86_expand_args_builtin): Add FALLTHRU.
+       (ix86_expand_builtin): Likewise.
+       (ix86_expand_vector_init_one_var): Likewise.
+       * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
+       (rs6000_adjust_cost): Likewise.
+       (insn_must_be_first_in_group): Likewise.
+       * config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
+       * dbxout.c (dbxout_symbol): Adjust fall through comment.
+       * df-scan.c (df_uses_record): Likewise.
+       * dojump.c (do_jump): Add FALLTHRU.
+       * dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
+       comment.
+       (resolve_args_picking_1): Adjust fall through comment.
+       (loc_list_from_tree_1): Likewise.
+       * expmed.c (make_tree): Likewise.
+       * expr.c (expand_expr_real_2): Add FALLTHRU.
+       (expand_expr_real_1): Likewise.  Adjust fall through comment.
+       * fold-const.c (const_binop): Adjust fall through comment.
+       (fold_truth_not_expr): Likewise.
+       (fold_cond_expr_with_comparison): Add FALLTHRU.
+       (fold_binary_loc): Likewise.
+       (contains_label_1): Adjust fall through comment.
+       (multiple_of_p): Likewise.
+       * gcov-tool.c (process_args): Add FALLTHRU.
+       * genattrtab.c (check_attr_test): Likewise.
+       (write_test_expr): Likewise.
+       * genconfig.c (walk_insn_part): Likewise.
+       * genpreds.c (validate_exp): Adjust fall through comment.
+       (needs_variable): Likewise.
+       * gensupport.c (get_alternatives_number): Add FALLTHRU.
+       (subst_dup): Likewise.
+       * gimple-pretty-print.c (dump_gimple_assign): Likewise.
+       * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
+       (gimplify_scan_omp_clauses): Add FALLTHRU.
+       (goa_stabilize_expr): Likewise.
+       * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
+       through comment.
+       * hsa-gen.c (get_address_from_value): Likewise.
+       * ipa-icf.c (sem_function::hash_stmt): Likewise.
+       * ira.c (ira_setup_alts): Add FALLTHRU.
+       * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
+       comment.
+       * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
+       * opts.c (common_handle_option): Likewise.
+       * read-rtl.c (read_rtx_code): Likewise.
+       * real.c (round_for_format): Likewise.
+       * recog.c (asm_operand_ok): Likewise.
+       * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
+       * reload1.c (set_label_offsets): Likewise.
+       (eliminate_regs_1): Likewise.
+       (reload_reg_reaches_end_p): Likewise.
+       * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
+       (rtx_cost): Likewise.
+       * sched-rgn.c (is_exception_free): Likewise.
+       * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
+       * stor-layout.c (int_mode_for_mode): Likewise.
+       * toplev.c (print_to_asm_out_file): Likewise.
+       (print_to_stderr): Likewise.
+       * tree-cfg.c (gimple_verify_flow_info): Likewise.
+       * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
+       (chrec_fold_multiply): Likewise.
+       (evolution_function_is_invariant_rec_p): Likewise.
+       (for_each_scev_op): Likewise.
+       * tree-data-ref.c (siv_subscript_p): Likewise.
+       (get_references_in_stmt): Likewise.
+       * tree.c (find_placeholder_in_expr): Adjust fall through comment.
+       (substitute_in_expr): Likewise.
+       (type_cache_hasher::equal): Likewise.
+       (walk_type_fields): Likewise.
+       * var-tracking.c (adjust_mems): Add FALLTHRU.
+       (set_dv_changed): Adjust fall through comment.
+       * varasm.c (default_function_section): Add FALLTHRU.
+
 2016-08-12  Marek Polacek  <polacek@redhat.com>
 
        PR c/7652
index dd1dfd3892034d8622bcc176d38d9947f443b824..f4b5a924b333b53f10b9077a786608b4493f5dde 100644 (file)
@@ -1398,7 +1398,7 @@ find_base_value (rtx src)
       if (GET_CODE (src) != PLUS && GET_CODE (src) != MINUS)
        break;
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case PLUS:
     case MINUS:
index 13acd93a17c366a9dc986390031d02a33fec95c5..14db7087321a140dc06c688ff39009558c8f6f4e 100644 (file)
@@ -1,3 +1,13 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * c-common.c (scalar_to_vector): Adjust fall through comment.
+       * c-opts.c (c_common_handle_option): Likewise.
+       * c-pragma.c (handle_pragma_pack): Add FALLTHRU.
+       * c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
+       fall through comment.
+       * cilk.c (extract_free_variables): Add FALLTHRU.
+
 2016-08-10  Jason Merrill  <jason@redhat.com>
 
        * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
index 7fd84eebc44ee6820c0a30f92a6f10d43a85660e..51b6ca95f912259636419322e88b4f76f26b3b84 100644 (file)
@@ -12709,7 +12709,7 @@ scalar_to_vector (location_t loc, enum tree_code code, tree op0, tree op1,
       case BIT_XOR_EXPR:
       case BIT_AND_EXPR:
        integer_only_op = true;
-       /* ... fall through ...  */
+       /* fall through */
 
       case VEC_COND_EXPR:
 
index 0715b2ef20062bb944850a19bb13630b4f422fba..574718a9a9821a9b513ec9f07a31851b9c3f66f4 100644 (file)
@@ -439,7 +439,7 @@ c_common_handle_option (size_t scode, const char *arg, int value,
 
     case OPT_ffreestanding:
       value = !value;
-      /* Fall through....  */
+      /* Fall through.  */
     case OPT_fhosted:
       flag_hosted = value;
       flag_no_builtin = !value;
index 277bc56031891f740c17195af3521d48d70e22ab..1a9a9f3f3eb91c05528d49cff392a0b857467ea7 100644 (file)
@@ -214,6 +214,7 @@ handle_pragma_pack (cpp_reader * ARG_UNUSED (dummy))
            align = maximum_field_alignment;
            break;
          }
+       /* FALLTHRU */
       default:
        GCC_BAD2 ("alignment must be a small power of two, not %d", align);
       }
index 704d21daaaa7e766c660b47ef4483c54a9a6241c..374bd1a3484021a5f06100a6e146f93c045f6ed6 100644 (file)
@@ -1662,7 +1662,7 @@ c_pretty_printer::postfix_expression (tree e)
           id_expression (TREE_OPERAND (e, 0));
          break;
        }
-      /* else fall through.  */
+      /* fall through.  */
 
     default:
       primary_expression (e);
index 39781c483a0095e876297355b2e5a5daa4f40a61..8042f216e0abd93ab399c00ce84c661913cc5e2c 100644 (file)
@@ -1097,6 +1097,7 @@ extract_free_variables (tree t, struct wrapper_data *wd,
     case RESULT_DECL:
       if (wd->type != CILK_BLOCK_SPAWN)
        TREE_ADDRESSABLE (t) = 1;
+      /* FALLTHRU */
     case VAR_DECL:
     case PARM_DECL:
       if (!is_global_var (t))
index 94f78438043fb2853bfc3123cb782509df0ee684..62701f0e493c52020fdaa7c30b7e810fb8af66c9 100644 (file)
@@ -1,3 +1,11 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * c-parser.c (c_parser_external_declaration): Add FALLTHRU.
+       (c_parser_postfix_expression): Likewise.
+       * c-typeck.c (build_unary_op): Adjust fall through comment.
+       (c_mark_addressable): Likewise.
+
 2016-08-11  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/72816
index ec74e0b3ead786b66ecc61e5e8c357e6ff584690..c050f644566f32f8f121c0f1b9020f458e6b291c 100644 (file)
@@ -1557,6 +1557,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.  */
+      /* FALLTHRU */
     default:
     decl_or_fndef:
       /* A declaration or a function definition (or, in Objective-C,
@@ -8174,6 +8175,7 @@ c_parser_postfix_expression (c_parser *parser)
          break;
        }
       /* Else fall through to report error.  */
+      /* FALLTHRU */
     default:
       c_parser_error (parser, "expected expression");
       expr.set_error ();
index 33c06d40417cf8a89af9a4f2ec7aedf37517c930..8456a0c0b1e816003605815b308295857e7842fc 100644 (file)
@@ -4493,7 +4493,7 @@ build_unary_op (location_t location,
              return error_mark_node;
            }
 
-         /* ... fall through ...  */
+         /* fall through */
 
        case ARRAY_REF:
          if (TYPE_REVERSE_STORAGE_ORDER (TREE_TYPE (TREE_OPERAND (arg, 0))))
@@ -4695,10 +4695,10 @@ c_mark_addressable (tree exp)
            return false;
          }
 
-       /* drops in */
+       /* FALLTHRU */
       case FUNCTION_DECL:
        TREE_ADDRESSABLE (x) = 1;
-       /* drops out */
+       /* FALLTHRU */
       default:
        return true;
     }
index 417f0dc16e3774de30d9e98f98cc6f164b7b8e04..130a16b1d7d06c4ec9e31439037ffcbcbd0e085f 100644 (file)
@@ -4239,7 +4239,7 @@ expand_debug_expr (tree exp)
          set_mem_attributes (op0, exp, 0);
          return op0;
        }
-      /* Fall through...  */
+      /* Fall through.  */
 
     case INTEGER_CST:
     case REAL_CST:
index b687867652fc8dc722909e8ffff034dafda3da66..1b262f94fed1645910de65900f035df154f91401 100644 (file)
@@ -5135,7 +5135,7 @@ find_split_point (rtx *loc, rtx_insn *insn, bool set_src)
       split = find_split_point (&XEXP (x, 2), insn, false);
       if (split)
        return split;
-      /* ... fall through ...  */
+      /* fall through */
     case RTX_BIN_ARITH:
     case RTX_COMM_ARITH:
     case RTX_COMPARE:
@@ -5143,7 +5143,7 @@ find_split_point (rtx *loc, rtx_insn *insn, bool set_src)
       split = find_split_point (&XEXP (x, 1), insn, false);
       if (split)
        return split;
-      /* ... fall through ...  */
+      /* fall through */
     case RTX_UNARY:
       /* Some machines have (and (shift ...) ...) insns.  If X is not
         an AND, but XEXP (X, 0) is, use it as our split point.  */
@@ -6955,6 +6955,7 @@ expand_compound_operation (rtx x)
     {
     case ZERO_EXTEND:
       unsignedp = 1;
+      /* FALLTHRU */
     case SIGN_EXTEND:
       /* We can't necessarily use a const_int for a multiword mode;
         it depends on implicitly extending the value.
@@ -6997,7 +6998,7 @@ expand_compound_operation (rtx x)
     case ZERO_EXTRACT:
       unsignedp = 1;
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case SIGN_EXTRACT:
       /* If the operand is a CLOBBER, just return it.  */
@@ -8037,7 +8038,7 @@ make_compound_operation (rtx x, enum rtx_code in_code)
          break;
        }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case ASHIFTRT:
       lhs = XEXP (x, 0);
@@ -8265,6 +8266,7 @@ canon_reg_for_combine (rtx x, rtx reg)
       if (op0 != XEXP (x, 0) || op1 != XEXP (x, 1) || op2 != XEXP (x, 2))
        return simplify_gen_ternary (GET_CODE (x), GET_MODE (x),
                                     GET_MODE (op0), op0, op1, op2);
+      /* FALLTHRU */
 
     case RTX_OBJ:
       if (REG_P (x))
@@ -8531,7 +8533,7 @@ force_to_mode (rtx x, machine_mode mode, unsigned HOST_WIDE_INT mask,
                                mode, smask, next_select);
       }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case MULT:
       /* Substituting into the operands of a widening MULT is not likely to
@@ -10404,7 +10406,7 @@ simplify_shift_const_1 (enum rtx_code code, machine_mode result_mode,
              continue;
            }
 
-         /* ... fall through ...  */
+         /* fall through */
 
        case LSHIFTRT:
        case ASHIFT:
@@ -11730,7 +11732,7 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
              continue;
            }
 
-         /* ... fall through ...  */
+         /* fall through */
 
        case SIGN_EXTRACT:
          tem = expand_compound_operation (op0);
index 1de325a0fc3dc174f16cb0fa420ca1288469a2d4..9136910cd324a391de929ea9d1a13419dbcfb8bc 100644 (file)
@@ -1017,6 +1017,7 @@ aarch64_simd_expand_args (rtx target, int icode, int have_retval,
                }
              /* Fall through - if the lane index isn't a constant then
                 the next case will error.  */
+             /* FALLTHRU */
            case SIMD_ARG_CONSTANT:
 constant_arg:
              if (!(*insn_data[icode].operand[opc].predicate)
index 8f2726d4483f79c6b2056eaa99519dad4db4c2a3..ebda6d812e7261d8d8c6e300e9db5f4a8884bfed 100644 (file)
          || GET_CODE (XEXP (op, 1)) != CONST_INT)
        return false;
       op = XEXP (op, 0);
+      /* FALLTHRU */
 
     case SYMBOL_REF:
       return SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_INITIAL_EXEC;
          || GET_CODE (XEXP (op, 1)) != CONST_INT)
        return false;
       op = XEXP (op, 0);
+      /* FALLTHRU */
 
     case SYMBOL_REF:
       return SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC;
index d086edea8142d3953ad0b11f73861943b38e690a..62896bfbb1e08625ad23f4564314b6eeac9a42d1 100644 (file)
@@ -9338,6 +9338,7 @@ pass_in_reg:
        error_p = 1;
       if (cum->float_in_sse < 2)
        break;
+      /* FALLTHRU */
     case SFmode:
       if (cum->float_in_sse == -1)
        error_p = 1;
@@ -9605,6 +9606,7 @@ pass_in_reg:
        error_p = 1;
       if (cum->float_in_sse < 2)
        break;
+      /* FALLTHRU */
     case SFmode:
       if (cum->float_in_sse == -1)
        error_p = 1;
@@ -11010,6 +11012,7 @@ ix86_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p,
          container = NULL;
          break;
        }
+      /* FALLTHRU */
 
     default:
       container = construct_container (nat_mode, TYPE_MODE (type),
@@ -17318,6 +17321,7 @@ print_reg (rtx x, int code, FILE *file)
     case 4:
       if (LEGACY_INT_REGNO_P (regno))
        putc (msize == 8 && TARGET_64BIT ? 'r' : 'e', file);
+      /* FALLTHRU */
     case 16:
     case 12:
     case 2:
@@ -17727,6 +17731,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
                  fputs ("eq_us", file);
                  break;
                }
+            /* FALLTHRU */
            case EQ:
              fputs ("eq", file);
              break;
@@ -17736,6 +17741,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
                  fputs ("nge", file);
                  break;
                }
+            /* FALLTHRU */
            case LT:
              fputs ("lt", file);
              break;
@@ -17745,6 +17751,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
                  fputs ("ngt", file);
                  break;
                }
+            /* FALLTHRU */
            case LE:
              fputs ("le", file);
              break;
@@ -17757,6 +17764,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
                  fputs ("neq_oq", file);
                  break;
                }
+            /* FALLTHRU */
            case NE:
              fputs ("neq", file);
              break;
@@ -17766,6 +17774,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
                  fputs ("ge", file);
                  break;
                }
+            /* FALLTHRU */
            case UNGE:
              fputs ("nlt", file);
              break;
@@ -17775,6 +17784,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
                  fputs ("gt", file);
                  break;
                }
+            /* FALLTHRU */
            case UNGT:
              fputs ("nle", file);
              break;
@@ -21522,6 +21532,7 @@ ix86_build_const_vector (machine_mode mode, bool vect, rtx value)
     case V4DImode:
     case V2DImode:
       gcc_assert (vect);
+      /* FALLTHRU */
     case V16SFmode:
     case V8SFmode:
     case V4SFmode:
@@ -22507,6 +22518,7 @@ ix86_expand_branch (enum rtx_code code, rtx op0, rtx op1, rtx label)
          op0 = force_reg (mode, gen_rtx_XOR (mode, op0, op1));
          op1 = const0_rtx;
        }
+      /* FALLTHRU */
     case TImode:
       /* Expand DImode branch into multiple compare+branch.  */
       {
@@ -29868,7 +29880,7 @@ ix86_sched_init_global (FILE *, int, int)
          core2i7_ifetch_block_max_insns = 6;
          break;
        }
-      /* ... Fall through ...  */
+      /* Fall through.  */
     default:
       targetm.sched.dfa_post_advance_cycle = NULL;
       targetm.sched.first_cycle_multipass_init = NULL;
@@ -40139,6 +40151,7 @@ ix86_expand_args_builtin (const struct builtin_description *d,
                        error ("the next to last argument must be an 8-bit immediate");
                        break;
                      }
+                   /* FALLTHRU */
                  case 1:
                    error ("the last argument must be an 8-bit immediate");
                    break;
@@ -42870,6 +42883,7 @@ rdseed_step:
          if (!TARGET_SSE)
            /* Emit a normal call if SSE isn't available.  */
            return expand_call (exp, target, ignore);
+         /* FALLTHRU */
        default:
          return ix86_expand_args_builtin (d, exp, target);
        }
@@ -47023,6 +47037,7 @@ ix86_expand_vector_init_one_var (bool mmx_ok, machine_mode mode,
       /* Use ix86_expand_vector_set in 64bit mode only.  */
       if (!TARGET_64BIT)
        return false;
+      /* FALLTHRU */
     case V4DFmode:
     case V8SFmode:
     case V8SImode:
index cfc4e0142fd379e3819cda2fe56b27d75fabd5c1..756e69df3c599620e56aa8edfc653126bc857a23 100644 (file)
@@ -22949,6 +22949,7 @@ rs6000_emit_vector_compare_inner (enum rtx_code code, rtx op0, rtx op1)
     case GE:
       if (GET_MODE_CLASS (mode) == MODE_VECTOR_INT)
        return NULL_RTX;
+      /* FALLTHRU */
 
     case EQ:
     case GT:
@@ -30687,6 +30688,7 @@ rs6000_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, int cost,
             }
         }
       /* Fall through, no cost for output dependency.  */
+      /* FALLTHRU */
 
     case REG_DEP_ANTI:
       /* Anti dependency; DEP_INSN reads a register that INSN writes some
@@ -31833,6 +31835,7 @@ insn_must_be_first_in_group (rtx_insn *insn)
     case PROCESSOR_POWER5:
       if (is_cracked_insn (insn))
         return true;
+      /* FALLTHRU */
     case PROCESSOR_POWER4:
       if (is_microcoded_insn (insn))
         return true;
index 84cb066b0245c9fc315abc17b5d679ce7b6be5f6..df75dc26807939331b126ffaf07ce7a70e055e54 100644 (file)
     case 0:
       if (TARGET_STRING)
         return \"stswi %1,%P0,16\";
+      /* FALLTHRU */
     case 1:
       return \"#\";
     case 2:
       if (TARGET_STRING
           && ! reg_overlap_mentioned_p (operands[0], operands[1]))
        return \"lswi %0,%P1,16\";
-      /* ... fall through ...  */
+      /* fall through */
     case 3:
     case 4:
     case 5:
index 4049c76bfebeeb77027d8386dff8db031b4dc7d8..52965b8cfe081d02c7b34753d9dfe3f1404cf2ee 100644 (file)
@@ -1,3 +1,38 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * call.c (add_builtin_candidate): Add FALLTHRU.
+       (build_integral_nontype_arg_conv): Adjust fall through comment.
+       (build_new_op_1): Add FALLTHRU.
+       (convert_like_real): Adjust fall through comment.
+       * class.c (fixed_type_or_null): Likewise.
+       * constexpr.c (cxx_eval_constant_expression): Likewise.
+       (potential_constant_expression_1): Likewise.  Add FALLTHRU.
+       * cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment.
+       (cp_fold): Add FALLTHRU.
+       * cvt.c (build_expr_type_conversion): Adjust fall through comment.
+       * cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU.
+       (pp_cxx_qualified_id): Likewise.
+       (cxx_pretty_printer::constant): Adjust fall through comment.
+       (cxx_pretty_printer::primary_expression): Add FALLTHRU.
+       (pp_cxx_pm_expression): Adjust fall through comment.
+       (cxx_pretty_printer::expression): Add FALLTHRU.
+       (cxx_pretty_printer::declaration_specifiers): Reformat code.
+       (pp_cxx_type_specifier_seq): Adjust fall through comment.
+       (pp_cxx_ptr_operator): Likewise.  Add FALLTHRU.
+       * error.c (dump_type): Adjust fall through comment.
+       (dump_decl): Likewise.
+       * mangle.c (write_type): Likewise.
+       * method.c (synthesized_method_walk): Add FALLTHRU.
+       * name-lookup.c (arg_assoc_type): Likewise.
+       * parser.c (cp_lexer_print_token): Adjust fall through comment.
+       (cp_parser_primary_expression): Add FALLTHRU.
+       (cp_parser_operator): Likewise.
+       * pt.c (find_parameter_packs_r): Likewise.
+       (tsubst_aggr_type): Adjust fall through comment.
+       * semantics.c (finish_omp_clauses): Add FALLTHRU.
+       * tree.c (lvalue_kind): Likewise.
+
 2016-08-12  Alexandre Oliva <aoliva@redhat.com>
 
        PR debug/63240
index 918661ab786769698e4130ffff5a3af62920ce39..0203cd1c7b2673659a9c4d1b484c40f25d6c4928 100644 (file)
@@ -2421,6 +2421,7 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
     case PREDECREMENT_EXPR:
       if (TREE_CODE (type1) == BOOLEAN_TYPE)
        return;
+      /* FALLTHRU */
     case POSTINCREMENT_EXPR:
     case PREINCREMENT_EXPR:
       if (ARITHMETIC_TYPE_P (type1) || TYPE_PTROB_P (type1))
@@ -2457,6 +2458,7 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
     case UNARY_PLUS_EXPR: /* unary + */
       if (TYPE_PTR_P (type1))
        break;
+      /* FALLTHRU */
     case NEGATE_EXPR:
       if (ARITHMETIC_TYPE_P (type1))
        break;
@@ -2594,6 +2596,7 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
     case PLUS_EXPR:
       if (ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2))
        break;
+      /* FALLTHRU */
     case ARRAY_REF:
       if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (type1) && TYPE_PTROB_P (type2))
        {
@@ -2674,6 +2677,7 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
              type2 = ptrdiff_type_node;
              break;
            }
+         /* FALLTHRU */
        case MULT_EXPR:
        case TRUNC_DIV_EXPR:
          if (ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2))
@@ -3966,7 +3970,7 @@ build_integral_nontype_arg_conv (tree type, tree expr, tsubst_flags_t complain)
        if (complain & tf_error)
          error_at (loc, "conversion from %qT to %qT not considered for "
                    "non-type template argument", t, type);
-       /* and fall through.  */
+       /* fall through.  */
 
       default:
        conv = NULL;
@@ -5493,6 +5497,7 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
     case MODIFY_EXPR:
       if (code2 != NOP_EXPR)
        break;
+      /* FALLTHRU */
     case COMPONENT_REF:
     case ARRAY_REF:
       memonly = true;
@@ -6661,7 +6666,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
 
       if (! MAYBE_CLASS_TYPE_P (totype))
        return expr;
-      /* Else fall through.  */
+      /* Fall through.  */
     case ck_base:
       if (convs->kind == ck_base && !convs->need_temporary_p)
        {
index 10286a7404e15e99c93fb9eaa12ca52b1c39e329..3ad1b8910fcc67c7defa77549ba7db11f97c4c2e 100644 (file)
@@ -7413,7 +7413,7 @@ fixed_type_or_null (tree instance, int *nonnull, int *cdtorp)
            *nonnull = 1;
          return TREE_TYPE (TREE_TYPE (instance));
        }
-      /* fall through...  */
+      /* fall through.  */
     case TARGET_EXPR:
     case PARM_DECL:
     case RESULT_DECL:
index cb0fdeebb08644fea9a6d9afdc62a178f22d52e2..5d97a4be4f1abedc076dc29e3b9de1bde3e5b1c2 100644 (file)
@@ -3699,7 +3699,7 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t,
       if (is_capture_proxy (t))
        return cxx_eval_constant_expression (ctx, DECL_VALUE_EXPR (t),
                                             lval, non_constant_p, overflow_p);
-      /* else fall through.  */
+      /* fall through */
     case CONST_DECL:
       /* We used to not check lval for CONST_DECL, but darwin.c uses
         CONST_DECL for aggregate constants.  */
@@ -3988,7 +3988,7 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t,
                                            overflow_p);
       if (r)
        break;
-      /* else fall through */
+      /* fall through */
 
     case PLUS_EXPR:
     case MINUS_EXPR:
@@ -5167,7 +5167,7 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict,
       /* A destructor.  */
       if (TYPE_P (TREE_OPERAND (t, 0)))
        return true;
-      /* else fall through.  */
+      /* fall through.  */
 
     case REALPART_EXPR:
     case IMAGPART_EXPR:
@@ -5269,6 +5269,7 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict,
            }
          return false;
        }
+      /* FALLTHRU */
     case INIT_EXPR:
       return RECUR (TREE_OPERAND (t, 1), rval);
 
index e28c9dfc799545767078407f793d2467f6c113af..6d514d0e99e2564ad1cc43f24e8ef06df811823d 100644 (file)
@@ -659,7 +659,7 @@ cp_gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
       cp_gimplify_init_expr (expr_p);
       if (TREE_CODE (*expr_p) != INIT_EXPR)
        return GS_OK;
-      /* Otherwise fall through.  */
+      /* Fall through.  */
     case MODIFY_EXPR:
     modify_expr_case:
       {
@@ -2068,6 +2068,7 @@ cp_fold (tree x)
 
     case VIEW_CONVERT_EXPR:
       rval_ops = false;
+      /* FALLTHRU */
     case CONVERT_EXPR:
     case NOP_EXPR:
     case NON_LVALUE_EXPR:
@@ -2116,6 +2117,7 @@ cp_fold (tree x)
     case REALPART_EXPR:
     case IMAGPART_EXPR:
       rval_ops = false;
+      /* FALLTHRU */
     case CONJ_EXPR:
     case FIX_TRUNC_EXPR:
     case FLOAT_EXPR:
@@ -2168,6 +2170,7 @@ cp_fold (tree x)
     case COMPOUND_EXPR:
     case MODIFY_EXPR:
       rval_ops = false;
+      /* FALLTHRU */
     case POINTER_PLUS_EXPR:
     case PLUS_EXPR:
     case MINUS_EXPR:
index 85b3047d9f138d08f9c94ca2116d4293cb6c3608..977c6652211ecddd24d550c43b4e4bb0d03f23ca 100644 (file)
@@ -1663,7 +1663,7 @@ build_expr_type_conversion (int desires, tree expr, bool complain)
       case INTEGER_TYPE:
        if ((desires & WANT_NULL) && null_ptr_cst_p (expr))
          return expr;
-       /* else fall through...  */
+       /* fall through.  */
 
       case BOOLEAN_TYPE:
        return (desires & WANT_INT) ? expr : NULL_TREE;
index 192b26cf3d9311c1331d21f86b76c14ec564e8f0..370476c1916e158a09005e5c2ff31ad474465597 100644 (file)
@@ -153,6 +153,7 @@ pp_cxx_unqualified_id (cxx_pretty_printer *pp, tree t)
     case USING_DECL:
     case TEMPLATE_DECL:
       t = DECL_NAME (t);
+      /* FALLTHRU */
 
     case IDENTIFIER_NODE:
       if (t == NULL)
@@ -280,6 +281,7 @@ pp_cxx_qualified_id (cxx_pretty_printer *pp, tree t)
         functions and some function templates.  */
     case OVERLOAD:
       t = OVL_CURRENT (t);
+      /* FALLTHRU */
     case FUNCTION_DECL:
       if (DECL_FUNCTION_MEMBER_P (t))
        pp_cxx_nested_name_specifier (pp, DECL_CONTEXT (t));
@@ -331,7 +333,7 @@ cxx_pretty_printer::constant (tree t)
          pp_string (this, "nullptr");
          break;
        }
-      /* else fall through.  */
+      /* fall through.  */
 
     default:
       c_pretty_printer::constant (t);
@@ -417,6 +419,7 @@ cxx_pretty_printer::primary_expression (tree t)
 
     case BASELINK:
       t = BASELINK_FUNCTIONS (t);
+      /* FALLTHRU */
     case VAR_DECL:
     case PARM_DECL:
     case FIELD_DECL:
@@ -872,7 +875,7 @@ pp_cxx_pm_expression (cxx_pretty_printer *pp, tree t)
          pp_cxx_qualified_id (pp, t);
          break;
        }
-      /* Else fall through.  */
+      /* Fall through.  */
     case MEMBER_REF:
     case DOTSTAR_EXPR:
       pp_cxx_pm_expression (pp, TREE_OPERAND (t, 0));
@@ -1057,6 +1060,7 @@ cxx_pretty_printer::expression (tree t)
 
     case OVERLOAD:
       t = OVL_CURRENT (t);
+      /* FALLTHRU */
     case VAR_DECL:
     case PARM_DECL:
     case FIELD_DECL:
@@ -1267,7 +1271,9 @@ cxx_pretty_printer::declaration_specifiers (tree t)
       else if (DECL_NONSTATIC_MEMBER_FUNCTION_P (t))
        declaration_specifiers (TREE_TYPE (TREE_TYPE (t)));
       else
-       default:
+        c_pretty_printer::declaration_specifiers (t);
+      break;
+    default:
         c_pretty_printer::declaration_specifiers (t);
       break;
     }
@@ -1364,7 +1370,7 @@ pp_cxx_type_specifier_seq (cxx_pretty_printer *pp, tree t)
          pp_cxx_ptr_operator (pp, t);
          break;
        }
-      /* else fall through */
+      /* fall through */
 
     default:
       if (!(TREE_CODE (t) == FUNCTION_DECL && DECL_CONSTRUCTOR_P (t)))
@@ -1406,6 +1412,7 @@ pp_cxx_ptr_operator (cxx_pretty_printer *pp, tree t)
          pp_star (pp);
          break;
        }
+      /* FALLTHRU */
     case OFFSET_TYPE:
       if (TYPE_PTRMEM_P (t))
        {
@@ -1416,7 +1423,7 @@ pp_cxx_ptr_operator (cxx_pretty_printer *pp, tree t)
          pp_cxx_cv_qualifier_seq (pp, t);
          break;
        }
-      /* else fall through.  */
+      /* fall through.  */
 
     default:
       pp_unsupported_tree (pp, t);
index 0d466735f636306a322a80676343210c91af7aed..58cd48c0a1406048f8a02e39ba78372ca09095ef 100644 (file)
@@ -450,7 +450,7 @@ dump_type (cxx_pretty_printer *pp, tree t, int flags)
                     ? DECL_ORIGINAL_TYPE (t) : TREE_TYPE (t), flags);
          break;
        }
-      /* Else fall through.  */
+      /* Fall through.  */
 
     case TEMPLATE_DECL:
     case NAMESPACE_DECL:
@@ -1065,7 +1065,7 @@ dump_decl (cxx_pretty_printer *pp, tree t, int flags)
          dump_type (pp, DECL_CONTEXT (t), flags);
          break;
        }
-      /* Else fall through.  */
+      /* Fall through.  */
     case FIELD_DECL:
     case PARM_DECL:
       dump_simple_decl (pp, t, TREE_TYPE (t), flags);
index b42c6f9214929489645156cc3ddab33d20e83bd6..d8b5c45577f3ee126ba785bd7e77e5c4e0f6e0ef 100644 (file)
@@ -2169,7 +2169,7 @@ write_type (tree type)
                  ++is_builtin_type;
                  break;
                }
-             /* else fall through.  */
+             /* fall through.  */
            case TEMPLATE_PARM_INDEX:
              write_template_param (type);
              break;
index 63aa53ea9cdc9e30fd31427117067bc7a5722bc1..75342ae5d28f2ea3158227f85724e2a5898dad18 100644 (file)
@@ -1420,6 +1420,7 @@ synthesized_method_walk (tree ctype, special_function_kind sfk, bool const_p,
     case sfk_move_constructor:
     case sfk_move_assignment:
       move_p = true;
+      /* FALLTHRU */
     case sfk_copy_constructor:
     case sfk_copy_assignment:
       copy_arg_p = true;
index 11957fd28069c5437ce146d8a6e8d4141bad2cc0..f6ba4d277650106d4e5d1068927167f63622eba3 100644 (file)
@@ -5659,6 +5659,7 @@ arg_assoc_type (struct arg_lookup *k, tree type)
     case RECORD_TYPE:
       if (TYPE_PTRMEMFUNC_P (type))
        return arg_assoc_type (k, TYPE_PTRMEMFUNC_FN_TYPE (type));
+      /* FALLTHRU */
     case UNION_TYPE:
       return arg_assoc_class (k, type);
     case POINTER_TYPE:
index 1b9359ed050e8100f7da0013c81f2e404894401f..48510d0927fd00e58c3baa80dc2c7c5fc14d53af 100644 (file)
@@ -1268,7 +1268,7 @@ cp_lexer_print_token (FILE * stream, cp_token *token)
         For example, `struct' is mapped to an INTEGER_CST.  */
       if (!identifier_p (token->u.value))
        break;
-      /* else fall through */
+      /* fall through */
     case CPP_NAME:
       fputs (IDENTIFIER_POINTER (token->u.value), stream);
       break;
@@ -5143,6 +5143,7 @@ cp_parser_primary_expression (cp_parser *parser,
              cp_parser_skip_to_end_of_block_or_statement (parser);
              return error_mark_node;
            }
+         /* FALLTHRU */
        default:
          cp_parser_error (parser, "expected primary-expression");
          return error_mark_node;
@@ -14096,6 +14097,7 @@ cp_parser_operator (cp_parser* parser)
     case CPP_UTF8STRING:
     case CPP_UTF8STRING_USERDEF:
       utf8 = true;
+      /* FALLTHRU */
     case CPP_STRING:
     case CPP_WSTRING:
     case CPP_STRING16:
index 1ee5fd4b579ab9ed585a26d05140ff9f2f94151e..5d4f5efc79d5af272722d0376cbec1da5a484b84 100644 (file)
@@ -3450,6 +3450,7 @@ find_parameter_packs_r (tree *tp, int *walk_subtrees, void* data)
 
     case TEMPLATE_TYPE_PARM:
       t = TYPE_MAIN_VARIANT (t);
+      /* FALLTHRU */
     case TEMPLATE_TEMPLATE_PARM:
       /* If the placeholder appears in the decl-specifier-seq of a function
         parameter pack (14.6.3), or the type-specifier-seq of a type-id that
@@ -11466,7 +11467,7 @@ tsubst_aggr_type (tree t,
       if (TYPE_PTRMEMFUNC_P (t))
        return tsubst (TYPE_PTRMEMFUNC_FN_TYPE (t), args, complain, in_decl);
 
-      /* Else fall through.  */
+      /* Fall through.  */
     case ENUMERAL_TYPE:
     case UNION_TYPE:
       if (TYPE_TEMPLATE_INFO (t) && uses_template_parms (t))
index a2e04f6b61d8c70617817923288827ccdd11f6c8..9ab8439077a3e6c2093c88d8b66f4e15bf62b35a 100644 (file)
@@ -6225,11 +6225,13 @@ finish_omp_clauses (tree clauses, enum c_omp_region_type ort)
              OMP_CLAUSE_OPERAND (c, 1) = t;
            }
          /* Check operand 0, the num argument.  */
+         /* FALLTHRU */
 
        case OMP_CLAUSE_WORKER:
        case OMP_CLAUSE_VECTOR:
          if (OMP_CLAUSE_OPERAND (c, 0) == NULL_TREE)
            break;
+         /* FALLTHRU */
 
        case OMP_CLAUSE_NUM_TASKS:
        case OMP_CLAUSE_NUM_TEAMS:
index 2e58615e1d721bfc5d45b91e9d3a4960d5cf0f64..6d254ddbf14600b6c94310f5a4a03d17b3a71712 100644 (file)
@@ -141,11 +141,13 @@ lvalue_kind (const_tree ref)
         lvalues.  */
       if (! TREE_STATIC (ref))
        return clk_none;
+      /* FALLTHRU */
     case VAR_DECL:
       if (TREE_READONLY (ref) && ! TREE_STATIC (ref)
          && DECL_LANG_SPECIFIC (ref)
          && DECL_IN_AGGR_P (ref))
        return clk_none;
+      /* FALLTHRU */
     case INDIRECT_REF:
     case ARROW_EXPR:
     case ARRAY_REF:
index da0987f0f43be65c3f576267760cfefed24bdcbb..ad256c706a0a6c5cb1f1c0932b42efc4b5d08f53 100644 (file)
@@ -2867,7 +2867,7 @@ dbxout_symbol (tree decl, int local ATTRIBUTE_UNUSED)
         disguised VAR_DECLs like Out parameters in Ada.  */
       gcc_assert (TREE_CODE (decl) == VAR_DECL);
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case RESULT_DECL:
     case VAR_DECL:
index 19d8e0f0eeb83f7e7fbc71355a632cc138f58467..9cd647a32135a8a9e1883e69d41a7fe5ed257f7c 100644 (file)
@@ -2875,7 +2875,7 @@ df_uses_record (struct df_collection_rec *collection_rec,
          df_uses_record (collection_rec, loc, ref_type, bb, insn_info, flags);
          return;
        }
-      /* ... Fall through ...  */
+      /* Fall through */
 
     case REG:
       df_ref_record (DF_REF_REGULAR, collection_rec,
index 58f1e03e41b376c6ec70f3a768cfde53cb86e026..d437b974526509b1a18aa239d93ba98cdef38a7b 100644 (file)
@@ -461,12 +461,14 @@ do_jump (tree exp, rtx_code_label *if_false_label,
           || TREE_CODE (TREE_OPERAND (exp, 0)) == ARRAY_REF
           || TREE_CODE (TREE_OPERAND (exp, 0)) == ARRAY_RANGE_REF)
         goto normal;
+      /* FALLTHRU */
     case CONVERT_EXPR:
       /* If we are narrowing the operand, we have to do the compare in the
          narrower mode.  */
       if ((TYPE_PRECISION (TREE_TYPE (exp))
            < TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (exp, 0)))))
         goto normal;
+      /* FALLTHRU */
     case NON_LVALUE_EXPR:
     case ABS_EXPR:
     case NEGATE_EXPR:
@@ -610,6 +612,7 @@ do_jump (tree exp, rtx_code_label *if_false_label,
        goto normal;
 
       /* Boolean comparisons can be compiled as TRUTH_AND_EXPR.  */
+      /* FALLTHRU */
 
     case TRUTH_AND_EXPR:
       /* High branch cost, expand as the bitwise AND of the conditions.
index 3b25358459dd93664f36649500a0436c385d0880..1290b96931257885b6b81ecf50789cdcd3adbf31 100644 (file)
@@ -13338,6 +13338,7 @@ mem_loc_descriptor (rtx rtl, machine_mode mode,
       if (!subreg_lowpart_p (rtl))
        break;
       inner = SUBREG_REG (rtl);
+      /* FALLTHRU */
     case TRUNCATE:
       if (inner == NULL_RTX)
         inner = XEXP (rtl, 0);
@@ -13675,7 +13676,7 @@ mem_loc_descriptor (rtx rtl, machine_mode mode,
                                        : -GET_MODE_UNIT_SIZE (mem_mode),
                                        mode));
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case PLUS:
     plus:
@@ -15601,7 +15602,7 @@ resolve_args_picking_1 (dw_loc_descr_ref loc, unsigned initial_frame_offset,
          if (!resolve_args_picking_1 (l->dw_loc_next, frame_offset_, dpi,
                                       frame_offsets))
            return false;
-         /* Fall through... */
+         /* Fall through. */
 
        case DW_OP_skip:
          l = l->dw_loc_oprnd1.v.val_loc;
@@ -16437,7 +16438,7 @@ loc_list_from_tree_1 (tree loc, int want_address,
                      TREE_OPERAND (loc, 1), TREE_OPERAND (loc, 0));
       }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case COND_EXPR:
       {
index 7af0c612200c69aadf53088c1c8309c1cb0f1623..674c8f08928b99fc0abf087b5ec1f7c9b08f0fe7 100644 (file)
@@ -5173,7 +5173,7 @@ make_tree (tree type, rtx x)
       t = SYMBOL_REF_DECL (x);
       if (t)
        return fold_convert (type, build_fold_addr_expr (t));
-      /* else fall through.  */
+      /* fall through.  */
 
     default:
       t = build_decl (RTL_LOCATION (x), VAR_DECL, NULL_TREE, type);
index 46de35f25492a0a39d8f1263bebbf01f153e3b08..391a8058654bd8a40818e5184d70fa7c5fb868fb 100644 (file)
@@ -8406,6 +8406,7 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode,
         offset to have matching modes.  */
       else if (TYPE_PRECISION (sizetype) > TYPE_PRECISION (type))
        treeop1 = fold_convert_loc (loc, type, treeop1);
+      /* FALLTHRU */
 
     case PLUS_EXPR:
       /* If we are adding a constant, a VAR_DECL that is sp, fp, or ap, and
@@ -9574,9 +9575,9 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
     switch (TREE_CODE_LENGTH (code))
       {
        default:
-       case 3: treeop2 = TREE_OPERAND (exp, 2);
-       case 2: treeop1 = TREE_OPERAND (exp, 1);
-       case 1: treeop0 = TREE_OPERAND (exp, 0);
+       case 3: treeop2 = TREE_OPERAND (exp, 2); /* FALLTHRU */
+       case 2: treeop1 = TREE_OPERAND (exp, 1); /* FALLTHRU */
+       case 1: treeop0 = TREE_OPERAND (exp, 0); /* FALLTHRU */
        case 0: break;
       }
   ops.code = code;
@@ -9748,7 +9749,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
          && (TREE_STATIC (exp) || DECL_EXTERNAL (exp)))
        layout_decl (exp, 0);
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case FUNCTION_DECL:
     case RESULT_DECL:
@@ -9956,7 +9957,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
          return original_target;
        }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case STRING_CST:
       temp = expand_expr_constant (exp, 1, modifier);
index c6c2bff50112642b4a0e8338fee26250d88ac918..30c1e0d440a6b6cce82a80a827d486b88c5ac1c2 100644 (file)
@@ -1300,7 +1300,7 @@ const_binop (enum tree_code code, tree arg1, tree arg2)
            return do_mpc_arg2 (arg1, arg2, type,
                                 /* do_nonfinite= */ folding_initializer,
                                mpc_div);
-         /* Fallthru ... */
+         /* Fallthru. */
        case TRUNC_DIV_EXPR:
        case CEIL_DIV_EXPR:
        case FLOOR_DIV_EXPR:
@@ -3696,7 +3696,7 @@ fold_truth_not_expr (location_t loc, tree arg)
       if (TREE_CODE (TREE_TYPE (arg)) == BOOLEAN_TYPE)
        return build1_loc (loc, TRUTH_NOT_EXPR, type, arg);
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case FLOAT_EXPR:
       loc1 = expr_location_or (TREE_OPERAND (arg, 0), loc);
@@ -5101,6 +5101,7 @@ fold_cond_expr_with_comparison (location_t loc, tree type,
       case UNLT_EXPR:
        if (flag_trapping_math)
          break;
+       /* FALLTHRU */
       case LE_EXPR:
       case LT_EXPR:
        if (TYPE_UNSIGNED (TREE_TYPE (arg1)))
@@ -10323,6 +10324,7 @@ fold_binary_loc (location_t loc,
       /* If first arg is constant zero, return it.  */
       if (integer_zerop (arg0))
        return fold_convert_loc (loc, type, arg0);
+      /* FALLTHRU */
     case TRUTH_AND_EXPR:
       /* If either arg is constant true, drop it.  */
       if (TREE_CODE (arg0) == INTEGER_CST && ! integer_zerop (arg0))
@@ -10378,6 +10380,7 @@ fold_binary_loc (location_t loc,
       /* If first arg is constant true, return it.  */
       if (TREE_CODE (arg0) == INTEGER_CST && ! integer_zerop (arg0))
        return fold_convert_loc (loc, type, arg0);
+      /* FALLTHRU */
     case TRUTH_OR_EXPR:
       /* If either arg is constant zero, drop it.  */
       if (TREE_CODE (arg0) == INTEGER_CST && integer_zerop (arg0))
@@ -11222,7 +11225,7 @@ contains_label_1 (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
     case GOTO_EXPR:
       *walk_subtrees = 0;
 
-      /* ... fall through ...  */
+      /* fall through */
 
     default:
       return NULL_TREE;
@@ -12602,7 +12605,7 @@ multiple_of_p (tree type, const_tree top, const_tree bottom)
              < TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (top, 0)))))
        return 0;
 
-      /* .. fall through ...  */
+      /* fall through */
 
     case SAVE_EXPR:
       return multiple_of_p (type, TREE_OPERAND (top, 0), bottom);
@@ -12657,7 +12660,7 @@ multiple_of_p (tree type, const_tree top, const_tree bottom)
            return 1;
        }
 
-      /* .. fall through ...  */
+      /* fall through */
 
     default:
       return 0;
index 4b9b7398e80f33dad7c2ef1ccb92cc86c419fbc0..95cd07539254881b2f1e970d906c7169a3e69ee4 100644 (file)
@@ -1,3 +1,15 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * decl.c (match_attr_spec): Add FALLTHRU.
+       * primary.c (match_arg_list_function): Likewise.
+       * resolve.c (resolve_operator): Adjust fall through comment.
+       (fixup_charlen): Add FALLTHRU.
+       (resolve_allocate_expr): Adjust fall through comment.
+       * trans-array.c (gfc_conv_ss_startstride): Add FALLTHRU.
+       * trans-intrinsic.c (gfc_conv_intrinsic_len): Adjust fall through
+       comment.
+
 2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>
 
        * check.c (gfc_check_random_seed): Use new seed size in check.
index 818e7d4ca988cd6d6390e263fea49d3307ff6f02..25b0df7130f876a65c22d085a51d2aeb90d9f76b 100644 (file)
@@ -3927,6 +3927,7 @@ match_attr_spec (void)
                      d = DECL_CODIMENSION;
                      break;
                    }
+                 /* FALLTHRU */
                case 'n':
                  if (match_string_p ("tiguous"))
                    {
index c2faa0f3e10bf7c5942e2b18c536a1d2f765f842..396edf2b5815506cada8517b853c0e9f200260a4 100644 (file)
@@ -1686,18 +1686,21 @@ match_arg_list_function (gfc_actual_arglist *result)
              result->name = "%LOC";
              break;
            }
+         /* FALLTHRU */
        case 'r':
          if (strncmp (name, "ref", 3) == 0)
            {
              result->name = "%REF";
              break;
            }
+         /* FALLTHRU */
        case 'v':
          if (strncmp (name, "val", 3) == 0)
            {
              result->name = "%VAL";
              break;
            }
+         /* FALLTHRU */
        default:
          m = MATCH_ERROR;
          goto cleanup;
index e0a688a76b26c2aab45750b6ed22b496dbcebf39..d8cfdd275b6874a0a20d2a798202151066786a50 100644 (file)
@@ -3542,7 +3542,7 @@ resolve_operator (gfc_expr *e)
       if (!gfc_resolve_expr (e->value.op.op2))
        return false;
 
-    /* Fall through...  */
+    /* Fall through.  */
 
     case INTRINSIC_NOT:
     case INTRINSIC_UPLUS:
@@ -3660,7 +3660,7 @@ resolve_operator (gfc_expr *e)
          goto bad_op;
        }
 
-      /* Fall through...  */
+      /* Fall through.  */
 
     case INTRINSIC_EQ:
     case INTRINSIC_EQ_OS:
@@ -5419,14 +5419,17 @@ fixup_charlen (gfc_expr *e)
     {
     case EXPR_OP:
       gfc_resolve_character_operator (e);
+      /* FALLTHRU */
 
     case EXPR_ARRAY:
       if (e->expr_type == EXPR_ARRAY)
        gfc_resolve_character_array_constructor (e);
+      /* FALLTHRU */
 
     case EXPR_SUBSTRING:
       if (!e->ts.u.cl && e->ref)
        gfc_resolve_substring_charlen (e);
+      /* FALLTHRU */
 
     default:
       if (!e->ts.u.cl)
@@ -7301,7 +7304,7 @@ resolve_allocate_expr (gfc_expr *e, gfc_code *code, bool *array_alloc_wo_spec)
              && ar->stride[i] == NULL)
            break;
 
-         /* Fall Through...  */
+         /* Fall through.  */
 
        case DIMEN_UNKNOWN:
        case DIMEN_VECTOR:
index 450d7db2076a64b4fabd1e198dfb441bca834536..bd232c28cc330ce14e71645aa1805489c015a54a 100644 (file)
@@ -4041,6 +4041,7 @@ done:
              continue;
            }
 
+         /* FALLTHRU */
        case GFC_SS_CONSTRUCTOR:
        case GFC_SS_FUNCTION:
          for (n = 0; n < ss->dimen; n++)
index abc1c6d36fe0062232b76df56450903dddb8deef..17dd8c266a2279ca0a6a79078d572fa59cf493ee 100644 (file)
@@ -5329,7 +5329,7 @@ gfc_conv_intrinsic_len (gfc_se * se, gfc_expr * expr)
          break;
        }
 
-      /* Otherwise fall through.  */
+      /* Fall through.  */
 
     default:
       /* Anybody stupid enough to do this deserves inefficient code.  */
index f3da73cc596474491c1ac2820b0e10e7c6628f88..d5dbf2719c1b5cb42ee007f6fea98168f6dd1ac1 100644 (file)
@@ -547,9 +547,11 @@ process_args (int argc, char **argv)
         case 'h':
           print_usage (false);
           /* Print_usage will exit.  */
+         /* FALLTHRU */
         case 'v':
           print_version ();
           /* Print_version will exit.  */
+         /* FALLTHRU */
         default:
           print_usage (true);
           /* Print_usage will exit.  */
index d39d4a70e924d6fd92a8230a0deecfd2931e3476..1668e71c5eec57cebfd37ef1fee92a00601988e8 100644 (file)
@@ -888,6 +888,7 @@ check_attr_test (file_location loc, rtx exp, attr_desc *attr)
          ATTR_IND_SIMPLIFIED_P (exp) = 1;
          break;
        }
+      /* FALLTHRU */
     default:
       fatal_at (loc, "invalid operator `%s' in definition of attribute"
                " `%s'", GET_RTX_NAME (GET_CODE (exp)), attr->name);
@@ -3458,6 +3459,7 @@ write_test_expr (FILE *outf, rtx exp, unsigned int attrs_cached, int flags,
     case GE: case GT:
     case LE: case LT:
       comparison_operator = FLG_BITWISE;
+      /* FALLTHRU */
 
     case PLUS:   case MINUS:  case MULT:     case DIV:      case MOD:
     case AND:    case IOR:    case XOR:
index 815e30d7330c5709824cd134de192e063c5e3f88..fec80fd00b6a9766f0866b3dd9ac9298f3710019 100644 (file)
@@ -83,6 +83,7 @@ walk_insn_part (rtx part, int recog_p, int non_pc_set_src)
     case MATCH_OP_DUP:
     case MATCH_PAR_DUP:
       ++dup_operands_seen_this_insn;
+      /* FALLTHRU */
     case MATCH_SCRATCH:
     case MATCH_PARALLEL:
     case MATCH_OPERATOR:
index dd7dbbfc6b78ff543d6865becb05799c7bd8b7a0..4c9dfc65664a5a15c1bff80d59ae675498769f55 100644 (file)
@@ -51,12 +51,12 @@ validate_exp (rtx exp, const char *name, file_location loc)
     case IF_THEN_ELSE:
       if (validate_exp (XEXP (exp, 2), name, loc))
        return true;
-      /* else fall through */
+      /* fall through */
     case AND:
     case IOR:
       if (validate_exp (XEXP (exp, 1), name, loc))
        return true;
-      /* else fall through */
+      /* fall through */
     case NOT:
       return validate_exp (XEXP (exp, 0), name, loc);
 
@@ -174,12 +174,12 @@ needs_variable (rtx exp, const char *var)
     case IF_THEN_ELSE:
       if (needs_variable (XEXP (exp, 2), var))
        return true;
-      /* else fall through */
+      /* fall through */
     case AND:
     case IOR:
       if (needs_variable (XEXP (exp, 1), var))
        return true;
-      /* else fall through */
+      /* fall through */
     case NOT:
       return needs_variable (XEXP (exp, 0), var);
 
index 0eb45919ec83af8f4936d75ea90c331e1a34eeab..7e3aad33000a7a990d11b11aa5c6ac7470f64afa 100644 (file)
@@ -1038,6 +1038,7 @@ get_alternatives_number (rtx pattern, int *n_alt, file_location loc)
        case 'V':
          if (XVEC (pattern, i) == NULL)
            break;
+         /* FALLTHRU */
 
        case 'E':
          for (j = XVECLEN (pattern, i) - 1; j >= 0; --j)
@@ -2156,6 +2157,7 @@ subst_dup (rtx pattern, int n_alt, int n_subst_alt)
        case 'V':
          if (XVEC (pattern, i) == NULL)
            break;
+         /* FALLTHRU */
        case 'E':
          if (code != MATCH_DUP && code != MATCH_OP_DUP)
            for (j = XVECLEN (pattern, i) - 1; j >= 0; --j)
index 48edacce1483cbdf962e8134a020ec839786086d..12d9a9c577bec60a3a461c45c1257ec71c6e1326 100644 (file)
@@ -517,8 +517,10 @@ dump_gimple_assign (pretty_printer *buffer, gassign *gs, int spc, int flags)
        {
        case 4:
          arg3 = gimple_assign_rhs3 (gs);
+         /* FALLTHRU */
        case 3:
          arg2 = gimple_assign_rhs2 (gs);
+         /* FALLTHRU */
        case 2:
          arg1 = gimple_assign_rhs1 (gs);
          break;
index fb27dd0e75a458ea71a1dc0d760ed4db314178a3..1e43dbb51cd8cc94763ede6cdc91660a5170bb95 100644 (file)
@@ -5190,7 +5190,7 @@ gimplify_addr_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
       if (integer_zerop (TREE_OPERAND (op0, 1)))
        goto do_indirect_ref;
 
-      /* ... fall through ... */
+      /* fall through */
 
     default:
       /* If we see a call to a declared builtin or see its address
@@ -6941,6 +6941,7 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p,
            case OACC_DATA:
              if (TREE_CODE (TREE_TYPE (decl)) != ARRAY_TYPE)
                break;
+             /* FALLTHRU */
            case OMP_TARGET_DATA:
            case OMP_TARGET_ENTER_DATA:
            case OMP_TARGET_EXIT_DATA:
@@ -9964,6 +9965,7 @@ goa_stabilize_expr (tree *expr_p, gimple_seq *pre_p, tree lhs_addr,
     case tcc_comparison:
       saw_lhs |= goa_stabilize_expr (&TREE_OPERAND (expr, 1), pre_p, lhs_addr,
                                     lhs_var);
+      /* FALLTHRU */
     case tcc_unary:
       saw_lhs |= goa_stabilize_expr (&TREE_OPERAND (expr, 0), pre_p, lhs_addr,
                                     lhs_var);
@@ -9978,6 +9980,7 @@ goa_stabilize_expr (tree *expr_p, gimple_seq *pre_p, tree lhs_addr,
        case TRUTH_XOR_EXPR:
          saw_lhs |= goa_stabilize_expr (&TREE_OPERAND (expr, 1), pre_p,
                                         lhs_addr, lhs_var);
+         /* FALLTHRU */
        case TRUTH_NOT_EXPR:
          saw_lhs |= goa_stabilize_expr (&TREE_OPERAND (expr, 0), pre_p,
                                         lhs_addr, lhs_var);
index 07c88026cdeb0ee365edb50e2c076d5c95ee1dec..0eb564ad2a25893f5751a0caeb72af78af1d6595 100644 (file)
@@ -1496,7 +1496,7 @@ substitute_ssa_name (tree exp, tree f, tree r)
        if (exp == f)
          return r;
 
-       /* Fall through...  */
+       /* Fall through.  */
 
       case tcc_exceptional:
       case tcc_unary:
index fa4ef126ac59f54c7d3bcbec14bcfaa90c748bb5..fb6d8a2dd8d5d8fa802a8c63501ba363bf349895 100644 (file)
@@ -4519,7 +4519,7 @@ get_address_from_value (tree val, hsa_bb *hbb)
     case INTEGER_CST:
       if (tree_fits_shwi_p (val))
        return new hsa_op_address (NULL, NULL, tree_to_shwi (val));
-      /* Otherwise fall-through */
+      /* fall-through */
 
     default:
       HSA_SORRY_ATV (EXPR_LOCATION (val),
index 3c04b5abc32e0eebad420031cf3b3318f9a53617..f29d929cf674ecc409e2e765c94779a98b5bcec1 100644 (file)
@@ -1643,7 +1643,7 @@ sem_function::hash_stmt (gimple *stmt, inchash::hash &hstate)
          add_type (TREE_TYPE (gimple_assign_lhs (stmt)), two);
          break;
        }
-      /* ... fall through ... */
+      /* fall through */
     case GIMPLE_CALL:
     case GIMPLE_ASM:
     case GIMPLE_COND:
index c66bb9e78fc99d57f52054ad5861f768893306df..f8a59e3cd6475acdfc07e43834c474ff8b4bef86 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1832,6 +1832,7 @@ ira_setup_alts (rtx_insn *insn, HARD_REG_SET &alts)
                  case '#':
                  case ',':
                    c = '\0';
+                   /* FALLTHRU */
                  case '\0':
                    len = 0;
                    break;
index 87e25bcfbe693ed024ecbbf9dec7e8547daf925a..ba2ab906312d96884d2be017a59b911e5ae6a74e 100644 (file)
@@ -1,3 +1,10 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * expr.c (java_truthvalue_conversion): Adjust fall through comment.
+       * jcf-io.c (verify_constant_pool): Likewise.
+       * typeck.c (promote_type): Likewise.
+
 2016-08-02  Roger Sayle  <roger@nextmovesoftware.com>
 
        * expr.c (push_value): Only call flush_quick_stack for non-constant
index b625a1d58da53b011cc9a74f94de17ecf8bcce7d..ba798ca3165087d7318ad9029d3ff54691b7432b 100644 (file)
@@ -192,7 +192,7 @@ java_truthvalue_conversion (tree expr)
       if (TYPE_PRECISION (TREE_TYPE (expr))
           >= TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (expr, 0))))
         return java_truthvalue_conversion (TREE_OPERAND (expr, 0));
-      /* fall through to default */
+      /* fall through */
 
     default:
       return fold_build2 (NE_EXPR, boolean_type_node,
index a560db7b53d49c7b4f02b01f150eac4a4b29f9e0..cc8616b86381f9bc6ef15dc1bdd5b358700de29e 100644 (file)
@@ -471,7 +471,7 @@ verify_constant_pool (JCF *jcf)
          if (n <= 0 || n >= JPOOL_SIZE(jcf)
              || JPOOL_TAG (jcf, n) != CONSTANT_Utf8)
            return i;
-         /* ... fall through ... */
+         /* fall through */
        case CONSTANT_Class:
        case CONSTANT_String:
          n = JPOOL_USHORT1 (jcf, i);
index d2e3db6e4b390583bcfe56a3b020ded8224c462d..61394a982da5c18e61efa68e952ac2114ce1dae0 100644 (file)
@@ -341,7 +341,7 @@ promote_type (tree type)
            return promoted_byte_type_node;
          return int_type_node;
        }
-      /* ... else fall through ... */
+      /* fall through */
     default:
       return type;
     }
index 9ae5cfea5ab8d3faa0f9517bb59bd4d4836a0010..08cc39011d1f589fd6a713f7975509145e86b47d 100644 (file)
@@ -484,7 +484,7 @@ lra_eliminate_regs_1 (rtx_insn *insn, rtx x, machine_mode mem_mode,
            return gen_rtx_MULT (Pmode, to, XEXP (x, 1));
        }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case CALL:
     case COMPARE:
@@ -536,7 +536,7 @@ lra_eliminate_regs_1 (rtx_insn *insn, rtx x, machine_mode mem_mode,
            }
        }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case INSN_LIST:
     case INT_LIST:
index bc45721f0777655004e867556725a174afdd7c7c..986b159502388a1b5dcb740c3c418d04802ddef1 100644 (file)
@@ -231,6 +231,7 @@ lto_output_tree_ref (struct output_block *ob, tree expr)
     case VAR_DECL:
     case DEBUG_EXPR_DECL:
       gcc_assert (decl_function_context (expr) == NULL || TREE_STATIC (expr));
+      /* FALLTHRU */
     case PARM_DECL:
       streamer_write_record_start (ob, LTO_global_decl_ref);
       lto_output_var_decl_index (ob->decl_state, ob->main_stream, expr);
index ddc670a4375b2b86bf7f6c66bf019b6f04e87e8f..cf735d125e13f1b327f35794ab1e39ffd2671d8d 100644 (file)
@@ -1,3 +1,8 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * objc-encoding.c (encode_type): Add FALLTHRU.
+
 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
 
        * objc-act.c (objc_build_component_ref): Update call
index 95e9c8bd272a272db286dd9a62099a9d04d2fc37..8fc2e5d74ed06bbddc1f0a6a55a4ef7d95665cdb 100644 (file)
@@ -622,6 +622,7 @@ encode_type (tree type, int curtype, int format)
        }
       /* Else, they are encoded exactly like the integer type that is
         used by the compiler to store them.  */
+      /* FALLTHRU */
     case INTEGER_TYPE:
       {
        char c;
index 4053fb1db0a9a814a5623e0604619fbe068b37ab..b927640c1f79db9f9818d83ec8917c764af6798e 100644 (file)
@@ -1980,6 +1980,7 @@ common_handle_option (struct gcc_options *opts,
       opts->x_flag_profile_use = true;
       value = true;
       /* No break here - do -fprofile-use processing. */
+      /* FALLTHRU */
     case OPT_fprofile_use:
       enable_fdo_optimizations (opts, opts_set, value);
       if (!opts_set->x_flag_profile_reorder_functions)
@@ -1996,6 +1997,7 @@ common_handle_option (struct gcc_options *opts,
       opts->x_flag_auto_profile = true;
       value = true;
       /* No break here - do -fauto-profile processing. */
+      /* FALLTHRU */
     case OPT_fauto_profile:
       enable_fdo_optimizations (opts, opts_set, value);
       if (!opts_set->x_flag_profile_correction)
@@ -2009,6 +2011,7 @@ common_handle_option (struct gcc_options *opts,
       opts->x_profile_data_prefix = xstrdup (arg);
       value = true;
       /* No break here - do -fprofile-generate processing. */
+      /* FALLTHRU */
     case OPT_fprofile_generate:
       if (!opts_set->x_profile_arc_flag)
        opts->x_profile_arc_flag = value;
index a705859a9db6cb4a2fa02e0d9935f2646f51984d..4614e356f7aa8b1263f9a85a866f3638a8292d86 100644 (file)
@@ -1163,6 +1163,7 @@ read_rtx_code (const char *code_name)
            break;
          }
        /* Now process the vector.  */
+       /* FALLTHRU */
 
       case 'E':
        {
index b009ed607edcd3984d134b69b6a633bd63f48c55..25f0a5b1466300cc966f0ca8b03736934987de98 100644 (file)
@@ -2667,6 +2667,7 @@ round_for_format (const struct real_format *fmt, REAL_VALUE_TYPE *r)
     {
     underflow:
       get_zero (r, r->sign);
+      /* FALLTHRU */
     case rvc_zero:
       if (!fmt->has_signed_zero)
        r->sign = 0;
index f425e47f498f9407e92fde4ca50803575299bc4e..19ab5744dd05de8f1df09178a2e6176ec9a955f9 100644 (file)
@@ -1792,6 +1792,7 @@ asm_operand_ok (rtx op, const char *constraint, const char **constraints)
 
             Match any memory and hope things are resolved after reload.  */
          incdec_ok = true;
+         /* FALLTHRU */
        default:
          cn = lookup_constraint (constraint);
          switch (get_constraint_type (cn))
index f4dac083045d99f7b838f599a7304dbada9af844..0cda6aa620098c752522add589b42631b382d9fc 100644 (file)
@@ -1149,7 +1149,7 @@ reg_scan_mark_refs (rtx x, rtx_insn *insn)
       if (REG_P (dest) && !REG_ATTRS (dest))
        set_reg_attrs_from_value (dest, SET_SRC (x));
 
-      /* ... fall through ...  */
+      /* fall through */
 
     default:
       {
index ce042bf69c51864cfe1938829b78070517cc3069..04cf2125c5b43d7345c4ea503fa381efbdb1521f 100644 (file)
@@ -2328,7 +2328,7 @@ set_label_offsets (rtx x, rtx_insn *insn, int initial_p)
 
       x = LABEL_REF_LABEL (x);
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case CODE_LABEL:
       /* If we know nothing about this label, set the desired offsets.  Note
@@ -2375,7 +2375,7 @@ set_label_offsets (rtx x, rtx_insn *insn, int initial_p)
     case JUMP_INSN:
       set_label_offsets (PATTERN (insn), insn, initial_p);
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case INSN:
     case CALL_INSN:
@@ -2690,7 +2690,7 @@ eliminate_regs_1 (rtx x, machine_mode mem_mode, rtx insn,
                               ep->previous_offset * INTVAL (XEXP (x, 1)));
            }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case CALL:
     case COMPARE:
@@ -2737,7 +2737,7 @@ eliminate_regs_1 (rtx x, machine_mode mem_mode, rtx insn,
            }
        }
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case INSN_LIST:
     case INT_LIST:
@@ -5499,7 +5499,7 @@ reload_reg_reaches_end_p (unsigned int regno, int reloadnum)
 
       opnum = reload_n_operands;
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case RELOAD_FOR_OUTPUT:
     case RELOAD_FOR_OUTPUT_ADDRESS:
index 94453295063494c535f0047341b98855e5bd4053..6470c4377ea50150a384e3563e3543aa2d8a2a3a 100644 (file)
@@ -3421,6 +3421,7 @@ commutative_operand_precedence (rtx op)
       /* Then prefer NEG and NOT.  */
       if (code == NEG || code == NOT)
         return 1;
+      /* FALLTHRU */
 
     default:
       return 0;
@@ -4095,7 +4096,7 @@ rtx_cost (rtx x, machine_mode mode, enum rtx_code outer_code,
       factor = GET_MODE_SIZE (mode) / UNITS_PER_WORD;
       if (factor == 0)
        factor = 1;
-      /* Pass through.  */
+      /* FALLTHRU */
     default:
       total = factor * COSTS_N_INSNS (1);
     }
index bfb8d8f97eded2750716f386d5aa305b8cdc3f3b..f6d1c91f7683bbe69c463dbaaa88a336604bbe08 100644 (file)
@@ -2036,6 +2036,7 @@ is_exception_free (rtx_insn *insn, int bb_src, int bb_trg)
       if (is_pfree (insn, bb_src, bb_trg))
        return 1;
       /* Don't 'break' here: PFREE-candidate is also PRISKY-candidate.  */
+      /* FALLTHRU */
     case PRISKY_CANDIDATE:
       if (!flag_schedule_speculative_load_dangerous
          || is_prisky (insn, bb_src, bb_trg))
index 691c2c1b6782e6b2462e37d12498f8f7abb33def..2085b997416d0275633541eea8e4e90154c88f9b 100644 (file)
@@ -6256,7 +6256,7 @@ simplify_rtx (const_rtx x)
       if (swap_commutative_operands_p (XEXP (x, 0), XEXP (x, 1)))
        return simplify_gen_binary (code, mode, XEXP (x, 1), XEXP (x, 0));
 
-      /* Fall through....  */
+      /* Fall through.  */
 
     case RTX_BIN_ARITH:
       return simplify_binary_operation (code, mode, XEXP (x, 0), XEXP (x, 1));
index 62ab80457b6fd4f81b243300e5392b8d4f77a089..cf7171430f9a35594e72c4512fe00ecd915928c2 100644 (file)
@@ -398,7 +398,7 @@ int_mode_for_mode (machine_mode mode)
       if (mode == BLKmode)
        break;
 
-      /* ... fall through ...  */
+      /* fall through */
 
     case MODE_CC:
     default:
index ddaee8a55c157506a609fd5c47be06e93cdbb3eb..26079047219c0f49cc214b5fcdc9e95c8a81508f 100644 (file)
@@ -731,7 +731,7 @@ print_to_asm_out_file (print_switch_type type, const char * text)
     case SWITCH_TYPE_DESCRIPTIVE:
       if (ASM_COMMENT_START[0] == 0)
        prepend_sep = false;
-      /* Drop through.  */
+      /* FALLTHRU */
     case SWITCH_TYPE_PASSED:
     case SWITCH_TYPE_ENABLED:
       if (prepend_sep)
@@ -761,7 +761,7 @@ print_to_stderr (print_switch_type type, const char * text)
     case SWITCH_TYPE_PASSED:
     case SWITCH_TYPE_ENABLED:
       fputc (' ', stderr);
-      /* Drop through.  */
+      /* FALLTHRU */
 
     case SWITCH_TYPE_DESCRIPTIVE:
       fputs (text, stderr);
index 07280202ba34de394e511a5cca84034b53902597..4036223e7e609ba2cb056e692ea36b0b590680ce 100644 (file)
@@ -5412,7 +5412,7 @@ gimple_verify_flow_info (void)
        case GIMPLE_CALL:
          if (!gimple_call_builtin_p (stmt, BUILT_IN_RETURN))
            break;
-         /* ... fallthru ... */
+         /* fallthru */
        case GIMPLE_RETURN:
          if (!single_succ_p (bb)
              || (single_succ_edge (bb)->flags
index 707a3aa988e2673ee81debca483c9018b66ee36e..79f07b029d1d791668ba755e5a555d02b42d7f2d 100644 (file)
@@ -287,6 +287,7 @@ chrec_fold_plus_1 (enum tree_code code, tree type,
        CASE_CONVERT:
          if (tree_contains_chrecs (op1, NULL))
            return chrec_dont_know;
+         /* FALLTHRU */
 
        default:
          if (code == PLUS_EXPR || code == POINTER_PLUS_EXPR)
@@ -304,6 +305,7 @@ chrec_fold_plus_1 (enum tree_code code, tree type,
     CASE_CONVERT:
       if (tree_contains_chrecs (op0, NULL))
        return chrec_dont_know;
+      /* FALLTHRU */
 
     default:
       switch (TREE_CODE (op1))
@@ -329,6 +331,7 @@ chrec_fold_plus_1 (enum tree_code code, tree type,
        CASE_CONVERT:
          if (tree_contains_chrecs (op1, NULL))
            return chrec_dont_know;
+         /* FALLTHRU */
 
        default:
          {
@@ -423,6 +426,7 @@ chrec_fold_multiply (tree type,
        CASE_CONVERT:
          if (tree_contains_chrecs (op1, NULL))
            return chrec_dont_know;
+         /* FALLTHRU */
 
        default:
          if (integer_onep (op1))
@@ -439,6 +443,7 @@ chrec_fold_multiply (tree type,
     CASE_CONVERT:
       if (tree_contains_chrecs (op0, NULL))
        return chrec_dont_know;
+      /* FALLTHRU */
 
     default:
       if (integer_onep (op0))
@@ -461,6 +466,7 @@ chrec_fold_multiply (tree type,
        CASE_CONVERT:
          if (tree_contains_chrecs (op1, NULL))
            return chrec_dont_know;
+         /* FALLTHRU */
 
        default:
          if (integer_onep (op1))
@@ -1026,6 +1032,7 @@ evolution_function_is_invariant_rec_p (tree chrec, int loopnum)
       if (!evolution_function_is_invariant_rec_p (TREE_OPERAND (chrec, 1),
                                                  loopnum))
        return false;
+      /* FALLTHRU */
 
     case 1:
       if (!evolution_function_is_invariant_rec_p (TREE_OPERAND (chrec, 0),
@@ -1533,12 +1540,15 @@ for_each_scev_op (tree *scev, bool (*cbck) (tree *, void *), void *data)
     {
     case 3:
       for_each_scev_op (&TREE_OPERAND (*scev, 2), cbck, data);
+      /* FALLTHRU */
 
     case 2:
       for_each_scev_op (&TREE_OPERAND (*scev, 1), cbck, data);
+      /* FALLTHRU */
 
     case 1:
       for_each_scev_op (&TREE_OPERAND (*scev, 0), cbck, data);
+      /* FALLTHRU */
 
     default:
       cbck (scev, data);
index 081ee60319320612b8d1fa606a1c4c8804784e49..58da248040f2df46bd80b38089bb8b76de28e385 100644 (file)
@@ -1685,6 +1685,7 @@ siv_subscript_p (const_tree chrec_a, const_tree chrec_b)
            case POLYNOMIAL_CHREC:
              if (CHREC_VARIABLE (chrec_a) != CHREC_VARIABLE (chrec_b))
                return false;
+             /* FALLTHRU */
 
            default:
              return true;
@@ -3890,6 +3891,7 @@ get_references_in_stmt (gimple *stmt, vec<data_ref_loc, va_heap> *references)
            if (gimple_call_lhs (stmt) == NULL_TREE)
              break;
            ref.is_read = true;
+           /* FALLTHRU */
          case IFN_MASK_STORE:
            ptr = build_int_cst (TREE_TYPE (gimple_call_arg (stmt, 1)), 0);
            align = tree_to_shwi (gimple_call_arg (stmt, 1));
index 11d3b51e3127329fd87fa044842a255bb1853bc9..6efc30ce5c8201a2c7a96aace306967a5377d3d1 100644 (file)
@@ -3727,7 +3727,7 @@ find_placeholder_in_expr (tree exp, vec<tree> *refs)
            break;
          }
 
-        /* Fall through...  */
+        /* Fall through.  */
 
       case tcc_exceptional:
       case tcc_unary:
@@ -3816,7 +3816,7 @@ substitute_in_expr (tree exp, tree f, tree r)
        if (exp == f)
          return r;
 
-        /* Fall through...  */
+        /* Fall through.  */
 
       case tcc_exceptional:
       case tcc_unary:
@@ -7027,7 +7027,7 @@ type_cache_hasher::equal (type_hash *a, type_hash *b)
                                   TYPE_VALUES (b->type))))
        return 0;
 
-      /* ... fall through ... */
+      /* fall through */
 
     case INTEGER_TYPE:
     case REAL_TYPE:
@@ -11564,7 +11564,7 @@ walk_type_fields (tree type, walk_tree_fn func, void *data,
          break;
        }
 
-      /* ... fall through ... */
+      /* fall through */
 
     case COMPLEX_TYPE:
       WALK_SUBTREE (TREE_TYPE (type));
index 90889786011217bcc2bd6c4af0c5c9e039f2a6e6..fdad87459fb7e4fbe7a16ef8a8049a2cb3339f4b 100644 (file)
@@ -1056,6 +1056,7 @@ adjust_mems (rtx loc, const_rtx old_rtx, void *data)
                                         ? GET_MODE_SIZE (amd->mem_mode)
                                         : -GET_MODE_SIZE (amd->mem_mode),
                                         GET_MODE (loc)));
+      /* FALLTHRU */
     case POST_INC:
     case POST_DEC:
       if (addr == loc)
@@ -1076,6 +1077,7 @@ adjust_mems (rtx loc, const_rtx old_rtx, void *data)
       return addr;
     case PRE_MODIFY:
       addr = XEXP (loc, 1);
+      /* FALLTHRU */
     case POST_MODIFY:
       if (addr == loc)
        addr = XEXP (loc, 0);
@@ -3148,7 +3150,7 @@ set_dv_changed (decl_or_value dv, bool newv)
     case ONEPART_DEXPR:
       if (newv)
        NO_LOC_P (DECL_RTL_KNOWN_SET (dv_as_decl (dv))) = false;
-      /* Fall through...  */
+      /* Fall through.  */
 
     default:
       DECL_CHANGED (dv_as_decl (dv)) = newv;
index 4ef6115455ce991a1137ba8867f7a997c83075a3..e747d2c4721cee34d05e21e9c7eaee9906da7f71 100644 (file)
@@ -589,6 +589,7 @@ default_function_section (tree decl, enum node_frequency freq,
            these ELF section.  */
         if (!in_lto_p || !flag_profile_values)
           return get_named_text_section (decl, ".text.hot", NULL);
+       /* FALLTHRU */
       default:
        return NULL;
     }
index f7cc1c410fa4736eea91c645712a2f10203ef8da..c049599784b0d9e46ad80ada16d0889b3a0f9580 100644 (file)
@@ -1,3 +1,13 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * lex.c (search_line_fast): Add FALLTHRU.
+       (_cpp_lex_direct): Likewise.
+       (cpp_token_val_index): Adjust fall through comment.
+       * macro.c (parse_params): Add FALLTHRU.
+       * pch.c (count_defs): Adjust fall through comment.
+       (write_defs): Likewise.
+
 2016-08-06  David Malcolm  <dmalcolm@redhat.com>
 
        PR bootstrap/72823
index 4e71965ebe793be4f6920fad0b9926d23f443a76..6254ed69ca20fbbc9d2f717ef2941b87f871e629 100644 (file)
@@ -610,6 +610,7 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
        if (l != 0)
          break;
        s += sizeof(unsigned long);
+       /* FALLTHRU */
       case 2:
        l = u.l[i++];
        if (l != 0)
@@ -2717,6 +2718,7 @@ _cpp_lex_direct (cpp_reader *pfile)
          }
        buffer->cur++;
       }
+      /* FALLTHRU */
 
     default:
       create_literal (pfile, result, buffer->cur - 1, 1, CPP_OTHER);
@@ -3322,7 +3324,7 @@ cpp_token_val_index (const cpp_token *tok)
        return CPP_TOKEN_FLD_SOURCE;
       else if (tok->type == CPP_PRAGMA)
        return CPP_TOKEN_FLD_PRAGMA;
-      /* else fall through */
+      /* fall through */
     default:
       return CPP_TOKEN_FLD_NONE;
     }
index a3b8348a23ff02913001b3491443bb25bb29ceef..147fcf53a88fbe2b667c45c04fa64bbf5f8a73d8 100644 (file)
@@ -2886,6 +2886,7 @@ parse_params (cpp_reader *pfile, cpp_macro *macro)
            return true;
 
          /* Fall through to pick up the error.  */
+         /* FALLTHRU */
        case CPP_COMMA:
          if (!prev_ident)
            {
index aa5ed6b37d9d626a60e7d673acfe28f907df8c41..fb9696d5769435169ea1526553a32a161e06a41f 100644 (file)
@@ -230,7 +230,7 @@ count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
       if (hn->flags & NODE_BUILTIN)
        return 1;
 
-      /* else fall through.  */
+      /* fall through.  */
 
     case NT_VOID:
       {
@@ -269,7 +269,7 @@ write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
       if (hn->flags & NODE_BUILTIN)
        return 1;
 
-      /* else fall through.  */
+      /* fall through.  */
 
     case NT_VOID:
       {
index e7ff8c3d33795f0fc08cb0440c0ccae39276cb7b..0b97a904c6fe60ae1326fbfbb1d970f38d527e69 100644 (file)
@@ -1,3 +1,8 @@
+2016-08-12  Marek Polacek  <polacek@redhat.com>
+
+       PR c/7652
+       * cp-demangle.c (d_print_mod): Add FALLTHRU.
+
 2016-08-04  Marcel Böhme  <boehme.marcel@gmail.com>
 
        PR c++/71696
index 0c6d71436e3f16b252278230f8732f05b139f2d2..1c2bce291797824c071abeeb5252d2d5df3855ad 100644 (file)
@@ -5777,11 +5777,13 @@ d_print_mod (struct d_print_info *dpi, int options,
     case DEMANGLE_COMPONENT_REFERENCE_THIS:
       /* For the ref-qualifier, put a space before the &.  */
       d_append_char (dpi, ' ');
+      /* FALLTHRU */
     case DEMANGLE_COMPONENT_REFERENCE:
       d_append_char (dpi, '&');
       return;
     case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
       d_append_char (dpi, ' ');
+      /* FALLTHRU */
     case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
       d_append_string (dpi, "&&");
       return;