Mercurial > hg > truffle
diff src/share/vm/opto/buildOopMap.cpp @ 729:04fa5affa478
6709742: find_base_for_derived's use of Ideal NULL is unsafe causing crashes during register allocation
Summary: Create a mach node corresponding to ideal node ConP #NULL specifically for derived pointers.
Reviewed-by: never
author | kvn |
---|---|
date | Wed, 22 Apr 2009 17:03:18 -0700 |
parents | 98cb887364d3 |
children | acba6af809c8 |
line wrap: on
line diff
--- a/src/share/vm/opto/buildOopMap.cpp Wed Apr 22 06:09:24 2009 -0700 +++ b/src/share/vm/opto/buildOopMap.cpp Wed Apr 22 17:03:18 2009 -0700 @@ -363,6 +363,20 @@ */ #endif +#ifdef ASSERT + for( OopMapStream oms1(omap, OopMapValue::derived_oop_value); !oms1.is_done(); oms1.next()) { + OopMapValue omv1 = oms1.current(); + bool found = false; + for( OopMapStream oms2(omap,OopMapValue::oop_value); !oms2.is_done(); oms2.next()) { + if( omv1.content_reg() == oms2.current().reg() ) { + found = true; + break; + } + } + assert( found, "derived with no base in oopmap" ); + } +#endif + return omap; }