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