@@ -1075,6 +1075,22 @@ bool WhiteBox::validate_cgroup(bool cgroups_v2_enabled,
1075
1075
}
1076
1076
#endif
1077
1077
1078
+ bool WhiteBox::is_asan_enabled () {
1079
+ #ifdef ADDRESS_SANITIZER
1080
+ return true ;
1081
+ #else
1082
+ return false ;
1083
+ #endif
1084
+ }
1085
+
1086
+ bool WhiteBox::is_ubsan_enabled () {
1087
+ #ifdef UNDEFINED_BEHAVIOR_SANITIZER
1088
+ return true ;
1089
+ #else
1090
+ return false ;
1091
+ #endif
1092
+ }
1093
+
1078
1094
bool WhiteBox::compile_method (Method* method, int comp_level, int bci, JavaThread* THREAD) {
1079
1095
// Screen for unavailable/bad comp level or null method
1080
1096
AbstractCompiler* comp = CompileBroker::compiler (comp_level);
@@ -1886,6 +1902,14 @@ WB_ENTRY(jboolean, WB_IsMonitorInflated(JNIEnv* env, jobject wb, jobject obj))
1886
1902
return (jboolean) obj_oop->mark ().has_monitor();
1887
1903
WB_END
1888
1904
1905
+ WB_ENTRY (jboolean, WB_IsAsanEnabled(JNIEnv* env))
1906
+ return (jboolean) WhiteBox::is_asan_enabled();
1907
+ WB_END
1908
+
1909
+ WB_ENTRY (jboolean, WB_IsUbsanEnabled(JNIEnv* env))
1910
+ return (jboolean) WhiteBox::is_ubsan_enabled();
1911
+ WB_END
1912
+
1889
1913
WB_ENTRY (jlong, WB_getInUseMonitorCount(JNIEnv* env, jobject wb))
1890
1914
return (jlong) WhiteBox::get_in_use_monitor_count();
1891
1915
WB_END
@@ -2882,6 +2906,8 @@ static JNINativeMethod methods[] = {
2882
2906
(void *)&WB_AddModuleExportsToAll },
2883
2907
{CC" deflateIdleMonitors" , CC" ()Z" , (void *)&WB_DeflateIdleMonitors },
2884
2908
{CC" isMonitorInflated0" , CC" (Ljava/lang/Object;)Z" , (void *)&WB_IsMonitorInflated },
2909
+ {CC" isAsanEnabled" , CC" ()Z" , (void *)&WB_IsAsanEnabled },
2910
+ {CC" isUbsanEnabled" , CC" ()Z" , (void *)&WB_IsUbsanEnabled },
2885
2911
{CC" getInUseMonitorCount" , CC" ()J" , (void *)&WB_getInUseMonitorCount },
2886
2912
{CC" getLockStackCapacity" , CC" ()I" , (void *)&WB_getLockStackCapacity },
2887
2913
{CC" supportsRecursiveLightweightLocking" , CC" ()Z" , (void *)&WB_supportsRecursiveLightweightLocking },
0 commit comments