diff --git a/ghc/runtime/main/Signals.lc b/ghc/runtime/main/Signals.lc index 858b40703f3b710b31bd104976962af1c389d10c..97fb56b34d94acd935238a1beb8b51c18c57a540 100644 --- a/ghc/runtime/main/Signals.lc +++ b/ghc/runtime/main/Signals.lc @@ -163,7 +163,9 @@ install_segv_handler(void) /* FreeBSD seems to generate SIGBUS for stack overflows */ if (signal(SIGBUS, segv_handler) == SIG_ERR) return -1; - return ((int) signal(SIGSEGV, segv_handler)); + if (signal(SIGSEGV, segv_handler) == SIG_ERR) + return -1; + return 0; #else return ((int) signal(SIGSEGV, segv_handler) == SIG_ERR); /* I think the "== SIG_ERR" is saying "there was no