comparison src/share/vm/opto/compile.cpp @ 3789:7889bbcc7f88

7047954: VM crashes with assert(is_Mem()) failed Summary: cast constant array ptrs to bottom Reviewed-by: never
author kvn
date Tue, 28 Jun 2011 15:50:07 -0700
parents 5d046bf49ce7
children 3d42f82cd811
comparison
equal deleted inserted replaced
3788:e3cbc9ddd434 3789:7889bbcc7f88
1204 } 1204 }
1205 // During the 2nd round of IterGVN, NotNull castings are removed. 1205 // During the 2nd round of IterGVN, NotNull castings are removed.
1206 // Make sure the Bottom and NotNull variants alias the same. 1206 // Make sure the Bottom and NotNull variants alias the same.
1207 // Also, make sure exact and non-exact variants alias the same. 1207 // Also, make sure exact and non-exact variants alias the same.
1208 if( ptr == TypePtr::NotNull || ta->klass_is_exact() ) { 1208 if( ptr == TypePtr::NotNull || ta->klass_is_exact() ) {
1209 if (ta->const_oop()) { 1209 tj = ta = TypeAryPtr::make(TypePtr::BotPTR,ta->ary(),ta->klass(),false,offset);
1210 tj = ta = TypeAryPtr::make(TypePtr::Constant,ta->const_oop(),ta->ary(),ta->klass(),false,offset);
1211 } else {
1212 tj = ta = TypeAryPtr::make(TypePtr::BotPTR,ta->ary(),ta->klass(),false,offset);
1213 }
1214 } 1210 }
1215 } 1211 }
1216 1212
1217 // Oop pointers need some flattening 1213 // Oop pointers need some flattening
1218 const TypeInstPtr *to = tj->isa_instptr(); 1214 const TypeInstPtr *to = tj->isa_instptr();