6623167: C2 crashed in StoreCMNode::Value

Tue, 11 Mar 2008 11:04:40 -0700

author
kvn
date
Tue, 11 Mar 2008 11:04:40 -0700
changeset 478
d821d920b465
parent 477
1216832af221
child 479
52fed2ec0afb

6623167: C2 crashed in StoreCMNode::Value
Summary: C2 crashed in StoreCMNode::Value because n->in(MemNode::OopStore) is 0.
Reviewed-by: rasbold, never

src/share/vm/opto/memnode.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/opto/memnode.cpp	Mon Mar 10 17:21:56 2008 -0700
     1.2 +++ b/src/share/vm/opto/memnode.cpp	Tue Mar 11 11:04:40 2008 -0700
     1.3 @@ -1771,9 +1771,16 @@
     1.4  
     1.5  //------------------------------Value-----------------------------------------
     1.6  const Type *StoreCMNode::Value( PhaseTransform *phase ) const {
     1.7 +  // Either input is TOP ==> the result is TOP
     1.8 +  const Type *t = phase->type( in(MemNode::Memory) );
     1.9 +  if( t == Type::TOP ) return Type::TOP;
    1.10 +  t = phase->type( in(MemNode::Address) );
    1.11 +  if( t == Type::TOP ) return Type::TOP;
    1.12 +  t = phase->type( in(MemNode::ValueIn) );
    1.13 +  if( t == Type::TOP ) return Type::TOP;
    1.14    // If extra input is TOP ==> the result is TOP
    1.15 -  const Type *t1 = phase->type( in(MemNode::OopStore) );
    1.16 -  if( t1 == Type::TOP ) return Type::TOP;
    1.17 +  t = phase->type( in(MemNode::OopStore) );
    1.18 +  if( t == Type::TOP ) return Type::TOP;
    1.19  
    1.20    return StoreNode::Value( phase );
    1.21  }

mercurial