8225670: compiler/types/correctness/* tests fail with "assert(recv == __null || recv->is_klass()) failed: wrong type"

Clear entry in the ciProfileData object if the klass is NULL.

Reviewed-by: eosterlund, thartmann
This commit is contained in:
Tobias Hartmann 2019-08-12 08:48:47 +02:00
parent 23e3128b6a
commit fd4dc1dfd2
2 changed files with 8 additions and 10 deletions

View file

@ -258,14 +258,12 @@ void ciMethodData::load_data() {
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);
}
}
}

View file

@ -49,8 +49,8 @@ compiler/jvmci/compilerToVM/GetResolvedJavaTypeTest.java 8158860 generic-all
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