diff options
author | Tom Tromey <tromey@gcc.gnu.org> | 1999-11-19 19:13:42 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-11-19 19:13:42 +0000 |
commit | 3cf88fb4e850d8dc5aafbe280bef674e79326005 (patch) | |
tree | 66d0cd37d209d1f5d9df73c934dc9f25f92bdf03 /libjava/include/default-signal.h | |
parent | 2395f8059c43b8411090fd4461cbd61d53a55ce9 (diff) | |
download | gcc-3cf88fb4e850d8dc5aafbe280bef674e79326005.zip gcc-3cf88fb4e850d8dc5aafbe280bef674e79326005.tar.gz gcc-3cf88fb4e850d8dc5aafbe280bef674e79326005.tar.bz2 |
sjlj jumbo patch
From-SVN: r30591
Diffstat (limited to 'libjava/include/default-signal.h')
-rw-r--r-- | libjava/include/default-signal.h | 33 |
1 files changed, 33 insertions, 0 deletions
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 */ |