< prev index next >
src/hotspot/share/utilities/vmError.cpp
Print this page
rev 54181 : 8221175: Fix bad function case for controlled JVM crash on PPC64 big-endian
Reviewed-by: chrisphi, stuefe, goetz
*** 1723,1733 ****
const size_t num = (size_t)os::vm_page_size();
const char* const eol = os::line_separator();
const char* const msg = "this message should be truncated during formatting";
char * const dataPtr = NULL; // bad data pointer
! const void (*funcPtr)(void) = (const void(*)()) 0xF; // bad function pointer
// Keep this in sync with test/hotspot/jtreg/runtime/ErrorHandling/ErrorHandler.java
// which tests cases 1 thru 13.
// Case 14 is tested by test/hotspot/jtreg/runtime/ErrorHandling/SafeFetchInErrorHandlingTest.java.
// Case 15 is tested by test/hotspot/jtreg/runtime/ErrorHandling/SecondaryErrorTest.java.
--- 1723,1742 ----
const size_t num = (size_t)os::vm_page_size();
const char* const eol = os::line_separator();
const char* const msg = "this message should be truncated during formatting";
char * const dataPtr = NULL; // bad data pointer
! const void (*funcPtr)(void); // bad function pointer
!
! #if defined(PPC64) && !defined(ABI_ELFv2)
! struct FunctionDescriptor functionDescriptor;
!
! functionDescriptor.set_entry((address) 0xF);
! funcPtr = (const void(*)()) &functionDescriptor;
! #else
! funcPtr = (const void(*)()) 0xF;
! #endif
// Keep this in sync with test/hotspot/jtreg/runtime/ErrorHandling/ErrorHandler.java
// which tests cases 1 thru 13.
// Case 14 is tested by test/hotspot/jtreg/runtime/ErrorHandling/SafeFetchInErrorHandlingTest.java.
// Case 15 is tested by test/hotspot/jtreg/runtime/ErrorHandling/SecondaryErrorTest.java.
< prev index next >