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