aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2004-08-09 07:14:17 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2004-08-09 07:14:17 +0000
commit7efcb746dac871864e4f193ea3abda75ab2b7f5c (patch)
treef50cb79c83ac56867cb419564c6d1993a024a882 /gcc/expr.c
parentc4d70ce3b976c161188e2aac6a4e0a1d5c05cb79 (diff)
downloadgcc-7efcb746dac871864e4f193ea3abda75ab2b7f5c.zip
gcc-7efcb746dac871864e4f193ea3abda75ab2b7f5c.tar.gz
gcc-7efcb746dac871864e4f193ea3abda75ab2b7f5c.tar.bz2
Makefile.in (GTFILES): Remove stmt.c
2004-08-09 Paolo Bonzini <bonzini@gnu.org> * Makefile.in (GTFILES): Remove stmt.c (stmt.o): Do not depend on gt-stmt.h. * emit-rtl.c (emit_line_note): Do not call set_file_and_line_for_stmt. * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case do everything. * function.c (free_after_parsing): Do not free STMT field. (allocate_struct_function): Do not call init_stmt_for_function. (assign_stack_temp_for_type): Do not accept values of keep other than 0 or 1. (init_temp_slots): Do not initialize removed variables. * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL and X_VAR_TEMP_SLOT_LEVEL fields. * rtl.h (set_file_and_line_for_stmt): Remove. * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK, struct stmt_status, cond_stack, case_stack, nesting_stack, nesting_depth, emit_locus, set_file_and_line_for_stmt, same_case_target_p, init_stmt_for_function, emit_nop, expand_start_cond, expand_start_elseif, expand_start_else, expand_elseif, expand_end_cond): Remove. (preserve_subexpressions_p): Remove references to CFUN->STMT. (expand_start_case, expand_end_case_type): Remove, merge into... (expand_case): ... this one, including other bits from expand_expr_real_1. Inline same_case_target_p. Turn members of CASE_STACK into local variables. (emit_case_bit_tests): Inline same_case_target_p. (add_case_node): Add HEAD argument, return new head of the list, do not handle default label here. * tree.h (expand_start_cond, expand_end_cond, expand_start_else, expand_start_elseif, current_nesting_level, expand_start_case, expand_end_case_type, expand_end_case, add_case_node, init_stmt_for_function, expand_elseif): Remove prototypes. (expand_case): Add prototype. From-SVN: r85712
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c24
1 files changed, 2 insertions, 22 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 211bac8..7334c59 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -7697,7 +7697,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
goto binop;
case TRUTH_OR_EXPR:
- code = BIT_OR_EXPR;
+ code = BIT_IOR_EXPR;
case BIT_IOR_EXPR:
goto binop;
@@ -8144,27 +8144,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
abort ();
case SWITCH_EXPR:
- 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))
- abort ();
- if (SWITCH_LABELS (exp))
- {
- tree vec = SWITCH_LABELS (exp);
- size_t i = TREE_VEC_LENGTH (vec);
-
- do
- {
- tree elt = TREE_VEC_ELT (vec, --i);
- add_case_node (CASE_LOW (elt), CASE_HIGH (elt),
- CASE_LABEL (elt));
- }
- while (i);
- }
- else
- abort ();
- expand_end_case_type (SWITCH_COND (exp), TREE_TYPE (exp));
+ expand_case (exp);
return const0_rtx;
case LABEL_EXPR: