diff src/share/vm/opto/connode.cpp @ 305:ab075d07f1ba

6736417: Fastdebug C2 crashes in StoreBNode::Ideal Summary: The result of step_through_mergemem() and remove_dead_region() is not checked in some cases. Reviewed-by: never
author kvn
date Wed, 27 Aug 2008 09:15:46 -0700
parents 9c2ecc2ffb12
children 36ccc817fca4
line wrap: on
line diff
--- a/src/share/vm/opto/connode.cpp	Wed Aug 27 00:21:55 2008 -0700
+++ b/src/share/vm/opto/connode.cpp	Wed Aug 27 09:15:46 2008 -0700
@@ -101,6 +101,8 @@
 // Move constants to the right.
 Node *CMoveNode::Ideal(PhaseGVN *phase, bool can_reshape) {
   if( in(0) && remove_dead_region(phase, can_reshape) ) return this;
+  // Don't bother trying to transform a dead node
+  if( in(0) && in(0)->is_top() )  return NULL;
   assert( !phase->eqv(in(Condition), this) &&
           !phase->eqv(in(IfFalse), this) &&
           !phase->eqv(in(IfTrue), this), "dead loop in CMoveNode::Ideal" );