aboutsummaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
authorTom Tromey <tromey@gcc.gnu.org>1999-11-19 19:13:42 +0000
committerTom Tromey <tromey@gcc.gnu.org>1999-11-19 19:13:42 +0000
commit3cf88fb4e850d8dc5aafbe280bef674e79326005 (patch)
tree66d0cd37d209d1f5d9df73c934dc9f25f92bdf03 /libjava/include
parent2395f8059c43b8411090fd4461cbd61d53a55ce9 (diff)
downloadgcc-3cf88fb4e850d8dc5aafbe280bef674e79326005.zip
gcc-3cf88fb4e850d8dc5aafbe280bef674e79326005.tar.gz
gcc-3cf88fb4e850d8dc5aafbe280bef674e79326005.tar.bz2
sjlj jumbo patch
From-SVN: r30591
Diffstat (limited to 'libjava/include')
-rw-r--r--libjava/include/Makefile.in3
-rw-r--r--libjava/include/config.h.in3
-rw-r--r--libjava/include/default-signal.h33
3 files changed, 38 insertions, 1 deletions
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index e1736be..d68544b 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -74,6 +74,7 @@ CXXCPP = @CXXCPP@
DIVIDESPEC = @DIVIDESPEC@
DLLTOOL = @DLLTOOL@
EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
+EXCEPTIONSPEC = @EXCEPTIONSPEC@
EXEEXT = @EXEEXT@
GCDEPS = @GCDEPS@
GCINCS = @GCINCS@
@@ -89,6 +90,7 @@ LN_S = @LN_S@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
+OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PERL = @PERL@
RANLIB = @RANLIB@
@@ -98,7 +100,6 @@ THREADINCS = @THREADINCS@
THREADLIBS = @THREADLIBS@
THREADOBJS = @THREADOBJS@
THREADSPEC = @THREADSPEC@
-USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
VERSION = @VERSION@
ZDEPS = @ZDEPS@
ZINCS = @ZINCS@
diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in
index 7fa60b5..6c08b16 100644
--- a/libjava/include/config.h.in
+++ b/libjava/include/config.h.in
@@ -132,6 +132,9 @@
getenv("GCJ_PROPERTIES"). */
#undef DISABLE_GETENV_PROPERTIES
+/* Define if using setjmp/longjmp exceptions. */
+#undef SJLJ_EXCEPTIONS
+
/* Define if you have the access function. */
#undef HAVE_ACCESS
diff --git a/libjava/include/default-signal.h b/libjava/include/default-signal.h
index 71545c0..21d5d7a 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 */