OSDN Git Service

* except.c (expand_start_all_catch): If the machine needs to
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 May 1997 00:58:40 +0000 (00:58 +0000)
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 May 1997 00:58:40 +0000 (00:58 +0000)
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.

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

gcc/except.c

index 225b656..7fcce82 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)