--- old/src/hotspot/share/opto/ifnode.cpp 2018-02-27 02:15:49.091419180 -0800 +++ new/src/hotspot/share/opto/ifnode.cpp 2018-02-27 02:15:48.869399029 -0800 @@ -897,7 +897,8 @@ // Figure out which of the two tests sets the upper bound and which // sets the lower bound if any. Node* adjusted_lim = NULL; - if (hi_type->_lo > lo_type->_hi && hi_type->_hi == max_jint && lo_type->_lo == min_jint) { + if (lo_type != NULL && hi_type != NULL && hi_type->_lo > lo_type->_hi && + hi_type->_hi == max_jint && lo_type->_lo == min_jint) { assert((dom_bool->_test.is_less() && !proj->_con) || (dom_bool->_test.is_greater() && proj->_con), "incorrect test"); // this test was canonicalized @@ -937,7 +938,8 @@ cond = BoolTest::lt; } } - } else if (lo_type->_lo > hi_type->_hi && lo_type->_hi == max_jint && hi_type->_lo == min_jint) { + } else if (lo_type != NULL && hi_type != NULL && lo_type->_lo > hi_type->_hi && + lo_type->_hi == max_jint && hi_type->_lo == min_jint) { // this_bool = < // dom_bool = < (proj = True) or dom_bool = >= (proj = False)