From 0b324007fd92fc4b62a40088b7d49fa3ee743a1c Mon Sep 17 00:00:00 2001 From: tromey Date: Fri, 19 Nov 1999 19:13:42 +0000 Subject: sjlj jumbo patch git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30591 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/include/Makefile.in | 3 ++- libjava/include/config.h.in | 3 +++ libjava/include/default-signal.h | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) (limited to 'libjava/include') diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in index e1736be96e6..d68544b9e72 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 7fa60b53dd6..6c08b161b6c 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 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 + +#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 */ -- cgit v1.2.3