aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Stump <mrs@gcc.gnu.org>1997-05-16 00:58:40 +0000
committerMike Stump <mrs@gcc.gnu.org>1997-05-16 00:58:40 +0000
commitf51430ed7aa820f0c77e0095a5b7a1a7846fc345 (patch)
tree1441a97a1b0ebc431e3f90213f8ceb00f9ca1aa5
parent59cfb80c42c06b8816682519dcd55ff40d867028 (diff)
downloadgcc-f51430ed7aa820f0c77e0095a5b7a1a7846fc345.zip
gcc-f51430ed7aa820f0c77e0095a5b7a1a7846fc345.tar.gz
gcc-f51430ed7aa820f0c77e0095a5b7a1a7846fc345.tar.bz2
except.c (expand_start_all_catch): If the machine needs to perform any actions at the start of an expcetion...
* 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
-rw-r--r--gcc/except.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/except.c b/gcc/except.c
index 225b656c..7fcce82 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -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)