src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/compile.cpp

src/share/vm/opto/compile.cpp

Print this page

        

*** 1151,1167 **** if (failing()) return; // already failing assert(s == start(), ""); } StartNode* Compile::start() const { ! assert(!failing(), ""); for (DUIterator_Fast imax, i = root()->fast_outs(imax); i < imax; i++) { Node* start = root()->fast_out(i); ! if( start->is_Start() ) return start->as_Start(); } fatal("Did not find Start node!"); return NULL; } //-------------------------------immutable_memory------------------------------------- --- 1151,1173 ---- if (failing()) return; // already failing assert(s == start(), ""); } + /** + * Return the 'StartNode'. We must not have a pending failure, since the ideal graph + * can be in an inconsistent state, i.e., we can get segmentation faults when traversing + * the ideal graph. + */ StartNode* Compile::start() const { ! assert (!failing(), err_msg_res("Must not have pending failure. Reason is: %s", failure_reason())); for (DUIterator_Fast imax, i = root()->fast_outs(imax); i < imax; i++) { Node* start = root()->fast_out(i); ! if (start->is_Start()) { return start->as_Start(); } + } fatal("Did not find Start node!"); return NULL; } //-------------------------------immutable_memory-------------------------------------
src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File