--- old/src/share/vm/runtime/deoptimization.cpp 2017-06-14 12:29:23.400271099 +0200 +++ new/src/share/vm/runtime/deoptimization.cpp 2017-06-14 12:29:23.232271107 +0200 @@ -1145,7 +1145,7 @@ // restore fields of an eliminated value type array void Deoptimization::reassign_value_array_elements(frame* fr, RegisterMap* reg_map, ObjectValue* sv, valueArrayOop obj, ValueArrayKlass* vak, TRAPS) { - ValueKlass* vk = vak->element_klass(); + ValueKlass* vk = (ValueKlass*)vak->element_klass(); assert(vk->flatten_array(), "should only be used for flattened value type arrays"); // Adjust offset to omit oop header int base_offset = arrayOopDesc::base_offset_in_bytes(T_VALUETYPE) - ValueKlass::cast(vk)->first_field_offset();