Commit a571f7a0 by Mark Mitchell Committed by Mark Mitchell

stmt.c (expand_start_bindings): Don't allow cleanup isntructions to disappear.

	* stmt.c (expand_start_bindings): Don't allow cleanup isntructions
	to disappear.

From-SVN: r29644
parent 541b0512
Thu Sep 23 18:18:55 1999 Mark Mitchell <mark@codesourcery.com>
* stmt.c (expand_start_bindings): Don't allow cleanup isntructions
to disappear.
Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com> Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com>
* optabs.c (init_traps): Register trap_rtx as a GC root. * optabs.c (init_traps): Register trap_rtx as a GC root.
......
...@@ -3230,6 +3230,13 @@ expand_start_bindings (flags) ...@@ -3230,6 +3230,13 @@ expand_start_bindings (flags)
thisblock->data.block.conditional_code = 0; thisblock->data.block.conditional_code = 0;
thisblock->data.block.last_unconditional_cleanup = note; thisblock->data.block.last_unconditional_cleanup = note;
/* When we insert instructions after the last unconditional cleanup,
we don't adjust last_insn. That means that a later add_insn will
clobber the instructions we've just added. The easiest way to
fix this is to just insert another instruction here, so that the
instructions inserted after the last unconditional cleanup are
never the last instruction. */
emit_note (NULL_PTR, NOTE_INSN_DELETED);
thisblock->data.block.cleanup_ptr = &thisblock->data.block.cleanups; thisblock->data.block.cleanup_ptr = &thisblock->data.block.cleanups;
if (block_stack if (block_stack
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment