* include/private/gcconfig.h [SIGBUS && !CPPCHECK] (HAVE_SIGBUS): New
macro.
* os_dep.c [NEED_FIND_LIMIT || UNIX_LIKE] (old_bus_handler,
GC_set_and_save_fault_handler, GC_reset_fault_handler): Replace
"ifdef SIGBUS" with "ifdef HAVE_SIGBUS".
* pthread_stop_world.c [!GC_OPENBSD_UTHREADS && !NACL]
(GC_remove_allowed_signals): Likewise.
# undef MPROTECT_VDB
#endif
+#if defined(SIGBUS) && !defined(HAVE_SIGBUS) && !defined(CPPCHECK)
+# define HAVE_SIGBUS
+#endif
+
#ifndef SA_SIGINFO
# define NO_SA_SIGACTION
#endif
# endif
# else
static GC_fault_handler_t old_segv_handler;
-# ifdef SIGBUS
+# ifdef HAVE_SIGBUS
static GC_fault_handler_t old_bus_handler;
# endif
# endif
# endif /* !GC_IRIX_THREADS */
# else
old_segv_handler = signal(SIGSEGV, h);
-# ifdef SIGBUS
+# ifdef HAVE_SIGBUS
old_bus_handler = signal(SIGBUS, h);
# endif
# endif
# endif
# else
(void) signal(SIGSEGV, old_segv_handler);
-# ifdef SIGBUS
+# ifdef HAVE_SIGBUS
(void) signal(SIGBUS, old_bus_handler);
# endif
# endif
/* Handlers write to the thread structure, which is in the heap, */
/* and hence can trigger a protection fault. */
if (sigdelset(set, SIGSEGV) != 0
-# ifdef SIGBUS
+# ifdef HAVE_SIGBUS
|| sigdelset(set, SIGBUS) != 0
# endif
) {