8340230: Tests crash: assert(is_in_encoding_range || k->is_interface() || k->is_abstract()) failed: sanity

Reviewed-by: thartmann, kvn
This commit is contained in:
Martin Doerr 2024-09-18 08:26:33 +00:00
parent 5381f553ad
commit 3895b8fc0b

View File

@ -3347,8 +3347,9 @@ void Compile::final_graph_reshaping_main_switch(Node* n, Final_Reshape_Counts& f
bool is_oop = t->isa_oopptr() != nullptr;
bool is_klass = t->isa_klassptr() != nullptr;
if ((is_oop && Matcher::const_oop_prefer_decode() ) ||
(is_klass && Matcher::const_klass_prefer_decode() && t->isa_klassptr()->exact_klass()->is_in_encoding_range())) {
if ((is_oop && UseCompressedOops && Matcher::const_oop_prefer_decode() ) ||
(is_klass && UseCompressedClassPointers && Matcher::const_klass_prefer_decode() &&
t->isa_klassptr()->exact_klass()->is_in_encoding_range())) {
Node* nn = nullptr;
int op = is_oop ? Op_ConN : Op_ConNKlass;