8225670: compiler/types/correctness/* tests fail with "assert(recv == __null || recv->is_klass()) failed: wrong type"
Summary: Clear entry in the ciProfileData object if the klass is NULL.
Reviewed-by: eosterlund, thartmann
--- a/src/hotspot/share/ci/ciMethodData.cpp Fri Aug 09 15:22:43 2019 -0700
+++ b/src/hotspot/share/ci/ciMethodData.cpp Mon Aug 12 08:48:47 2019 +0200
@@ -258,14 +258,12 @@
void ciReceiverTypeData::translate_receiver_data_from(const ProfileData* data) {
for (uint row = 0; row < row_limit(); row++) {
Klass* k = data->as_ReceiverTypeData()->receiver(row);
- if (k != NULL) {
- if (k->is_loader_alive()) {
- ciKlass* klass = CURRENT_ENV->get_klass(k);
- set_receiver(row, klass);
- } else {
- // With concurrent class unloading, the MDO could have stale metadata; override it
- clear_row(row);
- }
+ if (k != NULL && k->is_loader_alive()) {
+ ciKlass* klass = CURRENT_ENV->get_klass(k);
+ set_receiver(row, klass);
+ } else {
+ // With concurrent class unloading, the MDO could have stale metadata; override it
+ clear_row(row);
}
}
}
--- a/test/hotspot/jtreg/ProblemList.txt Fri Aug 09 15:22:43 2019 -0700
+++ b/test/hotspot/jtreg/ProblemList.txt Mon Aug 12 08:48:47 2019 +0200
@@ -49,8 +49,8 @@
compiler/jvmci/compilerToVM/InvalidateInstalledCodeTest.java 8163894 generic-all
compiler/tiered/LevelTransitionTest.java 8067651 generic-all
-compiler/types/correctness/CorrectnessTest.java 8225670,8225620 generic-all,solaris-sparcv9
-compiler/types/correctness/OffTest.java 8225670,8225620 generic-all,solaris-sparcv9
+compiler/types/correctness/CorrectnessTest.java 8225620 solaris-sparcv9
+compiler/types/correctness/OffTest.java 8225620 solaris-sparcv9
compiler/c2/Test6852078.java 8194310 generic-all
compiler/c2/Test8004741.java 8214904 generic-all