summaryrefslogtreecommitdiffstats
path: root/libjava/include/default-signal.h
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>1999-11-19 19:13:42 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>1999-11-19 19:13:42 +0000
commit0b324007fd92fc4b62a40088b7d49fa3ee743a1c (patch)
tree66d0cd37d209d1f5d9df73c934dc9f25f92bdf03 /libjava/include/default-signal.h
parent4e11cb6534c31d4902cd189a9d220865d616d301 (diff)
downloadppe42-gcc-0b324007fd92fc4b62a40088b7d49fa3ee743a1c.tar.gz
ppe42-gcc-0b324007fd92fc4b62a40088b7d49fa3ee743a1c.zip
sjlj jumbo patch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30591 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/include/default-signal.h')
-rw-r--r--libjava/include/default-signal.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/libjava/include/default-signal.h b/libjava/include/default-signal.h
index 71545c06aca..21d5d7a775e 100644
--- a/libjava/include/default-signal.h
+++ b/libjava/include/default-signal.h
@@ -11,11 +11,44 @@ details. */
#ifndef JAVA_SIGNAL_H
#define JAVA_SIGNAL_H 1
+#ifdef SJLJ_EXCEPTIONS
+
+#define HANDLE_SEGV
+#define HANDLE_FPE
+
+#include <signal.h>
+
+#define SIGNAL_HANDLER(_name) \
+static void _name (int _dummy)
+
+#define INIT_SEGV \
+do \
+ { \
+ nullp = new java::lang::NullPointerException (); \
+ signal (SIGSEGV, catch_segv); \
+ } \
+while (0)
+
+#define INIT_FPE \
+do \
+ { \
+ arithexception = new java::lang::ArithmeticException \
+ (JvNewStringLatin1 ("/ by zero")); \
+ signal (SIGFPE, catch_fpe); \
+ } \
+while (0)
+
+#define MAKE_THROW_FRAME do {} while (0)
+
+#else /* SJLJ_EXCEPTIONS */
+
#undef HANDLE_SEGV
#undef HANDLE_FPE
#define INIT_SEGV do {} while (0)
#define INIT_FPE do {} while (0)
+#endif /* SJLJ_EXCEPTIONS */
+
#endif /* JAVA_SIGNAL_H */
OpenPOWER on IntegriCloud