OSDN Git Service

* function.c (expand_function_end): Make sure we finish off any
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 May 1997 02:25:25 +0000 (02:25 +0000)
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 May 1997 02:25:25 +0000 (02:25 +0000)
leftover exception handlers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14067 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/function.c

index 571ac62..b2468de 100644 (file)
@@ -5572,6 +5572,24 @@ expand_function_end (filename, line, end_bindings)
   if (end_bindings)
     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
      an accurate stack pointer to exit the function,
      insert some code to save and restore the stack pointer.  */