src/share/vm/opto/type.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/type.cpp

src/share/vm/opto/type.cpp

Print this page
rev 5645 : imported patch typefixes
rev 5647 : 8027571: fatal error: meet not symmetric
Summary: meet of one constant array and one exact array not symmetric.
Reviewed-by:

*** 3828,3838 **** tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); } } else // Non integral arrays. // Must fall to bottom if exact klasses in upper lattice // are not equal or super klass is exact. ! if ( above_centerline(ptr) && klass() != tap->klass() && // meet with top[] and bottom[] are processed further down: tap ->_klass != NULL && this->_klass != NULL && // both are exact and not equal: ((tap ->_klass_is_exact && this->_klass_is_exact) || // 'tap' is exact and super or unrelated: --- 3828,3838 ---- tary = TypeAry::make(Type::BOTTOM, tary->_size, tary->_stable); } } else // Non integral arrays. // Must fall to bottom if exact klasses in upper lattice // are not equal or super klass is exact. ! if ((above_centerline(ptr) || ptr == Constant) && klass() != tap->klass() && // meet with top[] and bottom[] are processed further down: tap ->_klass != NULL && this->_klass != NULL && // both are exact and not equal: ((tap ->_klass_is_exact && this->_klass_is_exact) || // 'tap' is exact and super or unrelated:
src/share/vm/opto/type.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File