--- a/hotspot/src/share/vm/opto/loopTransform.cpp Wed Mar 08 09:04:21 2017 -0500
+++ b/hotspot/src/share/vm/opto/loopTransform.cpp Thu Mar 09 00:16:51 2017 -0800
@@ -3174,6 +3174,11 @@
return false;
}
+ Node* exit = head->loopexit()->proj_out(0);
+ if (exit == NULL) {
+ return false;
+ }
+
#ifndef PRODUCT
if (TraceLoopOpts) {
tty->print("ArrayFill ");
@@ -3281,7 +3286,6 @@
*/
// Redirect the old control and memory edges that are outside the loop.
- Node* exit = head->loopexit()->proj_out(0);
// Sometimes the memory phi of the head is used as the outgoing
// state of the loop. It's safe in this case to replace it with the
// result_mem.