6736417: Fastdebug C2 crashes in StoreBNode::Ideal

The result of step_through_mergemem() and remove_dead_region() is not checked in some cases.

Reviewed-by: never
This commit is contained in:
Vladimir Kozlov 2008-08-27 09:15:46 -07:00
parent 26c780da72
commit 37306315b2
6 changed files with 32 additions and 13 deletions

View file

@ -101,6 +101,8 @@ matter ever).
// 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" );