summaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-02 21:13:34 +0000
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-02 21:13:34 +0000
commit16c9337cf8172108f7c4230803c6aa0370807a94 (patch)
treedcf22487df72f428cf2839f64e5d177bc055f7b3 /gcc/except.c
parent0d12348a8a447ac3f0d395555bec3cb87d234516 (diff)
downloadgcc-16c9337cf8172108f7c4230803c6aa0370807a94.tar.gz
* expr.h (emit_storent_insn, expand_expr_real_1,
expand_expr_real_2): Declare. * expr.c (emit_storent_insn, expand_expr_real_1, expand_expr_real_2): Export. (store_expr): Setting and evaluating dont_return_target is useless. (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR, LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable. * except.c (expand_resx_expr): Rename to ... (expand_resx_stmt): ... this. Rewrite to take gimple statement. * except.h (expand_resx_stmt): Declare. * stmt.c: Add include gimple.h (expand_asm_expr): Rename to ... (expand_asm_stmt): ... this. Rewrite to take gimple statement. (expand_case): Rewrite to take gimple statement. * tree.h (expand_asm_stmt): Declare. (expand_case): Change prototype. * Makefile.in (stmt.o): Depend on gimple.h. * builtins.c (expand_builtin_synchronize): Build gimple asm statement, not an ASM_EXPR. * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r, gimple_to_tree, release_stmt_tree): Remove. (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or ggc_free, but hold comparison code and operands separately. Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot. (expand_call_stmt, expand_gimple_stmt_1, expand_gimple_stmt): New helpers. (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt, release_stmt_tree. Call expand_gimple_stmt instead. (expand_gimple_basic_block): Ditto. * calls.c (emit_call_1): Don't look at EH regions here, make fntree parameter useless. (expand_call): New local rettype for TREE_TYPE(exp), use it throughout. Remove local p, use addr instead. Don't look at EH regions here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151350 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/except.c b/gcc/except.c
index 9fa60ffbe4e..ed489d9604c 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -437,9 +437,9 @@ set_eh_region_tree_label (struct eh_region_d *region, tree lab)
}
void
-expand_resx_expr (tree exp)
+expand_resx_stmt (gimple stmt)
{
- int region_nr = TREE_INT_CST_LOW (TREE_OPERAND (exp, 0));
+ int region_nr = gimple_resx_region (stmt);
rtx insn;
struct eh_region_d *reg = VEC_index (eh_region,
cfun->eh->region_array, region_nr);