8273020: LibraryCallKit::sharpen_unsafe_type does not handle narrow oop array

Reviewed-by: chagedorn
This commit is contained in:
Tobias Hartmann 2021-08-27 05:38:24 +00:00
parent 76baace2f0
commit c925c7f3e8

@ -2172,7 +2172,7 @@ const TypeOopPtr* LibraryCallKit::sharpen_unsafe_type(Compile::AliasType* alias_
// See if it is a narrow oop array.
if (adr_type->isa_aryptr()) {
if (adr_type->offset() >= objArrayOopDesc::base_offset_in_bytes()) {
const TypeOopPtr *elem_type = adr_type->is_aryptr()->elem()->isa_oopptr();
const TypeOopPtr* elem_type = adr_type->is_aryptr()->elem()->make_oopptr();
if (elem_type != NULL) {
sharpened_klass = elem_type->klass();
}