From 873f1e89a8b5e0c168f212021a018d9d6f3b21e2 Mon Sep 17 00:00:00 2001 From: steven Date: Sat, 17 Jul 2004 00:31:15 +0000 Subject: * cfgcleanup.c (try_simplify_condjump): Don't remove line notes to avoid unreachable code warnings. * toplev.c (backend_init): Don't emit line notes for unreachable code warnings. * combine.c (distribute_notes): Don't distribute a REG_VTABLE_REF note. * final.c (final_scan_insn): Don't handle it. * rtl.c (reg_note_name): Remove it. * rtl.h (enum reg_node): Dito. * emit-rtl.c (force_line_numbers, restore_line_number_status): Remove. * rtl.h (force_line_numbers, restore_line_number_status): Remove prototypes. * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move... * tree-eh.c (using_eh_for_cleanups_p): ...here. Make static. (using_eh_for_cleanups): Also moved here. * expr.c (expand_expr_real_1) : Die if we see one. : Die if we have a non-NULL SWITCH_BODY. Update calls to expand_start_case and add_case_node. * stmt.c (struct nesting): Cleanup unused fields condition_code, last_unconditional_cleanup, nominal_type, printname, and line_number_status. (struct fixup_goto): Remove. (struct stmt_status): Remove x_goto_fixup_chain field. (goto_fixup_chain): Remove. (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable, pushcase, pushcase_range): Remove. (expand_start_bindings_and_block): Don't set unused fields in the nesting stack. (expand_start_case, add_case_node): Cleanup unused formal arguments. (expand_end_case_type): Don't simplify the case-list. Use emit_jump instead of emit_jump_if_reachable. (emit_case_nodes): Likewise. * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer static. (update_eh_label): Work around left-over exception handing regions. * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos. * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function. (pass_cleanup_cfg_post_optimizing): New pass. (init_tree_optimization_passes): Run the new pass after all optimizations. * tree.h (pushcase, pushcase_range): Remove prototypes. (expand_start_case, add_case_node): Update prototypes. cp/ * cp-tree.h (struct lang_type): Don't have three GTY options on a single bit GTY desc. java/ * parse.y (java_complete_expand_methods, java_expand_classes): Don't abuse restore_line_number_status. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84849 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/expr.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'gcc/expr.c') diff --git a/gcc/expr.c b/gcc/expr.c index 417f69cfccc..2ca28db596f 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -8541,6 +8541,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, case WITH_CLEANUP_EXPR: case CLEANUP_POINT_EXPR: case TARGET_EXPR: + case CASE_LABEL_EXPR: case VA_ARG_EXPR: /* Lowered by gimplify.c. */ abort (); @@ -8561,10 +8562,11 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, abort (); case SWITCH_EXPR: - expand_start_case (0, SWITCH_COND (exp), integer_type_node, - "switch"); + expand_start_case (SWITCH_COND (exp)); + /* The switch body is lowered in gimplify.c, we should never have + switches with a non-NULL SWITCH_BODY here. */ if (SWITCH_BODY (exp)) - expand_expr_stmt (SWITCH_BODY (exp)); + abort (); if (SWITCH_LABELS (exp)) { tree duplicate = 0; @@ -8623,7 +8625,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, } } - add_case_node (case_low, case_high, CASE_LABEL (elt), &duplicate, true); + add_case_node (case_low, case_high, CASE_LABEL (elt), &duplicate); if (duplicate) abort (); } @@ -8635,16 +8637,6 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, expand_label (TREE_OPERAND (exp, 0)); return const0_rtx; - case CASE_LABEL_EXPR: - { - tree duplicate = 0; - add_case_node (CASE_LOW (exp), CASE_HIGH (exp), CASE_LABEL (exp), - &duplicate, false); - if (duplicate) - abort (); - return const0_rtx; - } - case ASM_EXPR: expand_asm_expr (exp); return const0_rtx; -- cgit v1.2.3