diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2004-08-12 16:04:07 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2004-08-12 16:04:07 +0000 |
commit | a8afc7f0a046a0c747ae917ee6d390ea4ce7e306 (patch) | |
tree | 13a8afc1dfb6732013f3d006a3abbecdf1cf33cf /asmrun/signals.c | |
parent | 6fbad77c8affc15375e7bbf6e25f97936474f19f (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.c | 8 |
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); |