src/share/vm/opto/macro.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/macro.cpp	Thu Dec 29 17:55:45 2011
--- new/src/share/vm/opto/macro.cpp	Thu Dec 29 17:55:45 2011

*** 1501,1513 **** --- 1501,1520 ---- } // if we generated only a slow call, we are done if (always_slow) { // Now we can unhook i_o. + if (result_phi_i_o->outcnt() > 1) { call->set_req(TypeFunc::I_O, top()); if (result_phi_i_o->outcnt() == 0) ! _igvn.remove_dead_node(result_phi_i_o); + } else { ! assert(result_phi_i_o->unique_ctrl_out() == call, ""); + // Case of new array with negative size known during compilation. + // AllocateArrayNode::Ideal() optimization disconnect unreachable + // following code since call to runtime will throw exception. + // As result there will be no users of i_o after the call. + // Leave i_o attached to this call to avoid problems in preceding graph. + } return; } if (_fallthroughcatchproj != NULL) {

src/share/vm/opto/macro.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File