summaryrefslogtreecommitdiffstats
path: root/asmrun/signals.c
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2004-08-12 16:04:07 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2004-08-12 16:04:07 +0000
commita8afc7f0a046a0c747ae917ee6d390ea4ce7e306 (patch)
tree13a8afc1dfb6732013f3d006a3abbecdf1cf33cf /asmrun/signals.c
parent6fbad77c8affc15375e7bbf6e25f97936474f19f (diff)
Revu checkbound pour Sparc/non-Solaris (PR#2980)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6598 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'asmrun/signals.c')
-rw-r--r--asmrun/signals.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/asmrun/signals.c b/asmrun/signals.c
index 34d228c15..4770d01f6 100644
--- a/asmrun/signals.c
+++ b/asmrun/signals.c
@@ -301,7 +301,7 @@ value caml_install_signal_handler(value signal_number, value action) /* ML */
/* Machine- and OS-dependent handling of bound check trap */
-#if defined(TARGET_sparc) || defined(TARGET_power)
+#if defined(TARGET_power) || (defined(TARGET_sparc) && defined(SYS_solaris))
DECLARE_SIGNAL_HANDLER(trap_handler)
{
#if defined(SYS_solaris)
@@ -323,13 +323,9 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
sigprocmask(SIG_UNBLOCK, &mask, NULL);
}
#endif
-#if defined(CONTEXT_EXCEPTION_POINTER) && defined(CONTEXT_YOUNG_PTR)
caml_exception_pointer = (char *) CONTEXT_EXCEPTION_POINTER;
caml_young_ptr = (char *) CONTEXT_YOUNG_PTR;
caml_array_bound_error();
-#else
- caml_fatal_error("Fatal error: out-of-bound access in array or string\n");
-#endif
}
#endif
@@ -378,7 +374,7 @@ DECLARE_SIGNAL_HANDLER(segv_handler)
void caml_init_signals(void)
{
/* Bound-check trap handling */
-#if defined(TARGET_sparc)
+#if defined(TARGET_sparc) && defined(SYS_solaris)
{ struct sigaction act;
sigemptyset(&act.sa_mask);
SET_SIGACT(act, trap_handler);