--- old/src/share/vm/opto/compile.cpp 2017-07-14 16:33:37.385651960 +0200 +++ new/src/share/vm/opto/compile.cpp 2017-07-14 16:33:37.301651964 +0200 @@ -1540,7 +1540,7 @@ } ciKlass* klass = tk->klass(); - if( klass->is_obj_array_klass() ) { + if (klass != NULL && klass->is_obj_array_klass()) { ciKlass* k = TypeAryPtr::OOPS->klass(); if( !k || !k->is_loaded() ) // Only fails for some -Xcomp runs k = TypeInstPtr::BOTTOM->klass(); @@ -4163,11 +4163,11 @@ // (2) subklass does not overlap with superklass => always fail // (3) superklass has NO subtypes and we can check with a simple compare. int Compile::static_subtype_check(ciKlass* superk, ciKlass* subk) { - if (StressReflectiveCode) { + if (StressReflectiveCode || superk == NULL || subk == NULL) { return SSC_full_test; // Let caller generate the general case. } - if (superk == env()->Object_klass()) { + if (!EnableMVT && !EnableValhalla && superk == env()->Object_klass()) { return SSC_always_true; // (0) this test cannot fail }