except.c (call_get_eh_context): Don't mess with sequences.

* except.c (call_get_eh_context): Don't mess with sequences.
	(emit_eh_context): Include the call in the sequence here.

From-SVN: r17070
This commit is contained in:
Jason Merrill 1997-12-12 09:23:52 +00:00 committed by Jason Merrill
parent cba734eaca
commit 100d81d443
2 changed files with 10 additions and 15 deletions

View file

@ -1,3 +1,8 @@
Fri Dec 12 01:19:48 1997 Jason Merrill <jason@yorick.cygnus.com>
* except.c (call_get_eh_context): Don't mess with sequences.
(emit_eh_context): Include the call in the sequence here.
1997-12-11 Paul Eggert <eggert@twinsun.com>
* collect2.c (write_c_file_glob): Allocate initial frame object

View file

@ -707,15 +707,13 @@ add_partial_entry (handler)
pop_obstacks ();
}
/* Emit code to get EH context to current function. Should only be used
by emit_eh_context. */
/* Emit code to get EH context to current function. */
static rtx
call_get_eh_context ()
{
static tree fn;
tree expr;
rtx ehc, reg, insns;
if (fn == NULL_TREE)
{
@ -741,16 +739,7 @@ call_get_eh_context ()
expr, NULL_TREE, NULL_TREE);
TREE_SIDE_EFFECTS (expr) = 1;
start_sequence ();
ehc = expand_expr (expr, NULL_RTX, VOIDmode, 0);
reg = copy_to_reg (ehc);
insns = get_insns ();
end_sequence ();
emit_insns_before (insns, get_first_nonparm_insn ());
return reg;
return copy_to_reg (expand_expr (expr, NULL_RTX, VOIDmode, 0));
}
/* Get a reference to the EH context.
@ -1678,11 +1667,12 @@ emit_eh_context ()
{
rtx insns;
/* If this is the first use insn, emit the call. */
start_sequence ();
/* If this is the first use insn, emit the call here. */
if (ehc == 0)
ehc = call_get_eh_context ();
start_sequence ();
emit_move_insn (XEXP (reg, 0), ehc);
insns = get_insns ();
end_sequence ();