Mercurial > hg > graal-compiler
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(); |