comparison src/share/vm/opto/lcm.cpp @ 10279:70120f47d403

8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis() Summary: Add NULL checks and asserts for Type::make_ptr() returned value. Reviewed-by: twisti
author kvn
date Thu, 09 May 2013 17:28:04 -0700
parents 571076d3c79d
children d1034bd8cefc d2907f74462e
comparison
equal deleted inserted replaced
10278:6f3fd5150b67 10279:70120f47d403
217 MacroAssembler::needs_explicit_null_check(offset) ) 217 MacroAssembler::needs_explicit_null_check(offset) )
218 continue; // Give up if offset is beyond page size 218 continue; // Give up if offset is beyond page size
219 // cannot reason about it; is probably not implicit null exception 219 // cannot reason about it; is probably not implicit null exception
220 } else { 220 } else {
221 const TypePtr* tptr; 221 const TypePtr* tptr;
222 if (UseCompressedOops && Universe::narrow_oop_shift() == 0) { 222 if (UseCompressedOops && (Universe::narrow_oop_shift() == 0 ||
223 Universe::narrow_klass_shift() == 0)) {
223 // 32-bits narrow oop can be the base of address expressions 224 // 32-bits narrow oop can be the base of address expressions
224 tptr = base->bottom_type()->make_ptr(); 225 tptr = base->get_ptr_type();
225 } else { 226 } else {
226 // only regular oops are expected here 227 // only regular oops are expected here
227 tptr = base->bottom_type()->is_ptr(); 228 tptr = base->bottom_type()->is_ptr();
228 } 229 }
229 // Give up if offset is not a compile-time constant 230 // Give up if offset is not a compile-time constant