src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
Print this page
rev 3324 : 7167254: Crash on OSX in Enumerator.nextElement() with compressed oops
Summary: null checks in "compressed oops with base" mode may trigger a SIGBUS rather than a SIGSEGV.
Reviewed-by:
@@ -520,11 +520,11 @@
// Java thread running in Java code => find exception handler if any
// a fault inside compiled code, the interpreter, or a stub
if ((sig == SIGSEGV || sig == SIGBUS) && os::is_poll_address((address)info->si_addr)) {
stub = SharedRuntime::get_poll_stub(pc);
-#if defined(__APPLE__) && !defined(AMD64)
+#if defined(__APPLE__)
// 32-bit Darwin reports a SIGBUS for nearly all memory access exceptions.
// Catching SIGBUS here prevents the implicit SIGBUS NULL check below from
// being called, so only do so if the implicit NULL check is not necessary.
} else if (sig == SIGBUS && MacroAssembler::needs_explicit_null_check((int)info->si_addr)) {
#else