except.c (expand_start_all_catch): If the machine needs to perform any actions at...
authorMike Stump <mrs@gcc.gnu.org>
Fri, 16 May 1997 00:58:40 +0000 (00:58 +0000)
committerMike Stump <mrs@gcc.gnu.org>
Fri, 16 May 1997 00:58:40 +0000 (00:58 +0000)
* except.c (expand_start_all_catch): If the machine needs to
perform any actions at the start of an expcetion handler that
hasn't already been done, use gen_exception_receiver to emit it.
(expand_leftover_cleanups): Likewise.
* alpha/alpha.md (exception_receiver): Use it.
* pa/pa.h (exception_receiver): Use it.
Fix -fpic on hppa when excetpions are throw across shared libraries.

From-SVN: r14070

gcc/except.c

index 225b656c519f17463e978b01a2841a9101655b24..7fcce82668ad0cb69c47e92474edb9db29632826 100644 (file)
@@ -1159,6 +1159,12 @@ expand_leftover_cleanups ()
       /* Output the label for the start of the exception handler.  */
       emit_label (entry->exception_handler_label);
 
+#ifdef HAVE_exception_receiver
+      if (! exceptions_via_longjmp)
+       if (HAVE_exception_receiver)
+         emit_insn (gen_exception_receiver ());
+#endif
+
 #ifdef HAVE_nonlocal_goto_receiver
       if (! exceptions_via_longjmp)
        if (HAVE_nonlocal_goto_receiver)
@@ -1258,6 +1264,12 @@ expand_start_all_catch ()
         end up being the handler.  */
       emit_label (entry->exception_handler_label);
 
+#ifdef HAVE_exception_receiver
+      if (! exceptions_via_longjmp)
+       if (HAVE_exception_receiver)
+         emit_insn (gen_exception_receiver ());
+#endif
+
 #ifdef HAVE_nonlocal_goto_receiver
       if (! exceptions_via_longjmp)
        if (HAVE_nonlocal_goto_receiver)