8249451: Unconditional exceptions clearing logic in compiler code should honor Async Exceptions.

Reviewed-by: dholmes, iveresov
This commit is contained in:
Jamsheed Mohammed C M 2020-09-18 05:48:14 +00:00
parent 3ef2efb1f4
commit 73c9088b81
21 changed files with 179 additions and 114 deletions

View file

@ -47,6 +47,7 @@ class RecordComponent;
f(java_lang_Throwable) \
f(java_lang_Thread) \
f(java_lang_ThreadGroup) \
f(java_lang_InternalError) \
f(java_lang_AssertionStatusDirectives) \
f(java_lang_ref_SoftReference) \
f(java_lang_invoke_MethodHandle) \
@ -1651,6 +1652,22 @@ class java_lang_Byte_ByteCache : AllStatic {
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
};
// Interface to java.lang.InternalError objects
#define INTERNALERROR_INJECTED_FIELDS(macro) \
macro(java_lang_InternalError, during_unsafe_access, bool_signature, false)
class java_lang_InternalError : AllStatic {
private:
static int _during_unsafe_access_offset;
public:
static jboolean during_unsafe_access(oop internal_error);
static void set_during_unsafe_access(oop internal_error);
static void compute_offsets();
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
};
// Use to declare fields that need to be injected into Java classes
// for the JVM to use. The name_index and signature_index are
// declared in vmSymbols. The may_be_java flag is used to declare
@ -1690,7 +1707,9 @@ class InjectedField {
MEMBERNAME_INJECTED_FIELDS(macro) \
CALLSITECONTEXT_INJECTED_FIELDS(macro) \
STACKFRAMEINFO_INJECTED_FIELDS(macro) \
MODULE_INJECTED_FIELDS(macro)
MODULE_INJECTED_FIELDS(macro) \
INTERNALERROR_INJECTED_FIELDS(macro)
// Interface to hard-coded offset checking