Commit e5a1e0e8 by Mike Stump

function.c (expand_function_end): Make sure we finish off any leftover exception handlers.

	* function.c (expand_function_end): Make sure we finish off any
	leftover exception handlers.

From-SVN: r14067
parent 6b023d07
...@@ -5572,6 +5572,24 @@ expand_function_end (filename, line, end_bindings) ...@@ -5572,6 +5572,24 @@ expand_function_end (filename, line, end_bindings)
if (end_bindings) if (end_bindings)
expand_end_bindings (0, 0, 0); expand_end_bindings (0, 0, 0);
/* Now handle any leftover exception regions that may have been
created for the parameters. */
{
rtx last = get_last_insn ();
rtx label;
expand_leftover_cleanups ();
/* If the above emitted any code, may sure we jump around it. */
if (last != get_last_insn ())
{
label = gen_label_rtx ();
last = emit_jump_insn_after (gen_jump (label), last);
last = emit_barrier_after (last);
emit_label (label);
}
}
/* If we had calls to alloca, and this machine needs /* If we had calls to alloca, and this machine needs
an accurate stack pointer to exit the function, an accurate stack pointer to exit the function,
insert some code to save and restore the stack pointer. */ insert some code to save and restore the stack pointer. */
......
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