2002-08-27 Nick Clifton <nickc@redhat.com>
[official-gcc.git] / libjava / include / default-signal.h
blob492f0cacdc7602ed81d7bffceaf1099361ec80d9
1 // default-signal.h - Catch runtime signals and turn them into exceptions.
3 /* Copyright (C) 1998, 1999, 2000 Free Software Foundation
5 This file is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9 details. */
11 #ifndef JAVA_SIGNAL_H
12 #define JAVA_SIGNAL_H 1
14 #ifdef SJLJ_EXCEPTIONS
16 #define HANDLE_SEGV 1
17 #define HANDLE_FPE 1
19 #include <signal.h>
21 #define SIGNAL_HANDLER(_name) \
22 static void _name (int _dummy)
24 #define INIT_SEGV \
25 do \
26 { \
27 nullp = new java::lang::NullPointerException (); \
28 signal (SIGSEGV, catch_segv); \
29 } \
30 while (0)
32 #define INIT_FPE \
33 do \
34 { \
35 arithexception = new java::lang::ArithmeticException \
36 (JvNewStringLatin1 ("/ by zero")); \
37 signal (SIGFPE, catch_fpe); \
38 } \
39 while (0)
41 #define MAKE_THROW_FRAME(_exception) do {} while (0)
43 #else /* SJLJ_EXCEPTIONS */
45 #undef HANDLE_SEGV
46 #undef HANDLE_FPE
48 #define INIT_SEGV do {} while (0)
49 #define INIT_FPE do {} while (0)
51 #endif /* SJLJ_EXCEPTIONS */
53 #endif /* JAVA_SIGNAL_H */