# HG changeset patch # User roland # Date 1417103689 -3600 # Node ID 8653c71aea40f41a184d26c7273a7c27d417fdda # Parent 5c2ffeabefe88b5e125e7ee8fad680f10f303f5d 8066045: opto/node.hpp:355, assert(i < _max) failed: oob: i=1, _max=1 Summary: code in PhaseIterGVN::add_users_to_worklist() from 8054478 makes incorrect assumption about graph shape Reviewed-by: iveresov diff -r 5c2ffeabefe8 -r 8653c71aea40 hotspot/src/share/vm/opto/phaseX.cpp --- a/hotspot/src/share/vm/opto/phaseX.cpp Thu Nov 27 11:33:04 2014 -0500 +++ b/hotspot/src/share/vm/opto/phaseX.cpp Thu Nov 27 16:54:49 2014 +0100 @@ -1431,7 +1431,7 @@ Node* castii = in1->raw_out(i); if (castii->in(0) != NULL && castii->in(0)->in(0) != NULL && castii->in(0)->in(0)->is_If()) { Node* ifnode = castii->in(0)->in(0); - if (ifnode->in(1) != NULL && ifnode->in(1)->in(1) == use) { + if (ifnode->in(1) != NULL && ifnode->in(1)->is_Bool() && ifnode->in(1)->in(1) == use) { // Reprocess a CastII node that may depend on an // opaque node value when the opaque node is // removed. In case it carries a dependency we can do