--- old/src/share/vm/opto/ifnode.cpp 2017-03-07 22:32:46.570339658 -0800 +++ new/src/share/vm/opto/ifnode.cpp 2017-03-07 22:32:46.421328613 -0800 @@ -1458,8 +1458,9 @@ // be skipped. For example, range check predicate has two checks // for lower and upper bounds. ProjNode* unc_proj = proj_out(1 - prev_dom->as_Proj()->_con)->as_Proj(); - if (unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate) != NULL) - prev_dom = idom; + if ((unc_proj != NULL) && (unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate) != NULL)) { + prev_dom = idom; + } // Now walk the current IfNode's projections. // Loop ends when 'this' has no more uses.