aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2001-04-27 19:25:20 -0400
committerJason Merrill <jason@gcc.gnu.org>2001-04-27 19:25:20 -0400
commit16842c15359aeba1c588c153fafad99fad0f3fd9 (patch)
tree5d2d24c2ce6f607592d8f5fd684eb2a1ebe84c45 /gcc/except.c
parent6fa0f379d54a170c191110d5c89d289c280fc420 (diff)
downloadgcc-16842c15359aeba1c588c153fafad99fad0f3fd9.zip
gcc-16842c15359aeba1c588c153fafad99fad0f3fd9.tar.gz
gcc-16842c15359aeba1c588c153fafad99fad0f3fd9.tar.bz2
except.c (expand_eh_region_start): Don't start a new block.
* except.c (expand_eh_region_start): Don't start a new block. (expand_eh_region_end): Don't end a block. * stmt.c (expand_end_bindings): Don't end EH blocks. (expand_decl_cleanup): Starting an EH region won't change the block. (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose. (is_eh_region): Lose. * tree.h: Adjust. From-SVN: r41647
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c27
1 files changed, 1 insertions, 26 deletions
diff --git a/gcc/except.c b/gcc/except.c
index 80c82a1..ee9892b 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -643,17 +643,6 @@ expand_eh_region_start ()
if (! doing_eh (0))
return;
- /* We need a new block to record the start and end of the dynamic
- handler chain. We also want to prevent jumping into a try block. */
- expand_start_bindings (2);
-
- /* But we don't need or want a new temporary level. */
- pop_temp_slots ();
-
- /* Mark this block as created by expand_eh_region_start. This is so
- that we can pop the block with expand_end_bindings automatically. */
- mark_block_as_eh_region ();
-
/* Insert a new blank region as a leaf in the tree. */
new_region = (struct eh_region *) xcalloc (1, sizeof (*new_region));
cur_region = cfun->eh->cur_region;
@@ -691,20 +680,6 @@ expand_eh_region_end ()
/* Pop. */
cfun->eh->cur_region = cur_region->outer;
- /* If we have already started ending the bindings, don't recurse. */
- if (is_eh_region ())
- {
- /* Because we don't need or want a new temporary level and
- because we didn't create one in expand_eh_region_start,
- create a fake one now to avoid removing one in
- expand_end_bindings. */
- push_temp_slots ();
-
- mark_block_as_not_eh_region ();
-
- expand_end_bindings (NULL_TREE, 0, 0);
- }
-
return cur_region;
}
@@ -739,7 +714,7 @@ expand_eh_region_end_cleanup (handler)
it, we need to save the EH return data registers around it. */
data_save[0] = gen_reg_rtx (Pmode);
emit_move_insn (data_save[0], get_exception_pointer ());
- data_save[1] = gen_reg_rtx (Pmode);
+ data_save[1] = gen_reg_rtx (word_mode);
emit_move_insn (data_save[1], get_exception_filter ());
expand_expr (handler, const0_rtx, VOIDmode, 0);