1.1 --- a/src/share/vm/opto/cfgnode.cpp Wed Apr 23 13:57:14 2008 -0700 1.2 +++ b/src/share/vm/opto/cfgnode.cpp Wed Apr 23 19:09:16 2008 -0700 1.3 @@ -1419,7 +1419,8 @@ 1.4 // Check inputs of phi's inputs also. 1.5 // It is much less expensive then full graph walk. 1.6 uint cnt = in->req(); 1.7 - for (uint i = 1; i < cnt; ++i) { 1.8 + uint i = (in->is_Proj() && !in->is_CFG()) ? 0 : 1; 1.9 + for (; i < cnt; ++i) { 1.10 Node* m = in->in(i); 1.11 if (m == (Node*)this) 1.12 return UnsafeLoop; // Unsafe loop 1.13 @@ -1467,7 +1468,8 @@ 1.14 while (nstack.size() != 0) { 1.15 Node* n = nstack.pop(); 1.16 uint cnt = n->req(); 1.17 - for (uint i = 1; i < cnt; i++) { // Only data paths 1.18 + uint i = (n->is_Proj() && !n->is_CFG()) ? 0 : 1; 1.19 + for (; i < cnt; i++) { 1.20 Node* m = n->in(i); 1.21 if (m == (Node*)this) { 1.22 return true; // Data loop