[9] RFR (XS): 8058828: Wrong ciConstant type for arrays from ConstantPool::_resolved_reference

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Wed Oct 1 11:07:27 UTC 2014


http://cr.openjdk.java.net/~vlivanov/8058828/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8058828

There are 2 unrelated problems for the same scenario.

ciEnv::get_constant_by_index_impl doesn't distinguish T_OBJECT & T_ARRAY 
cases for constant pool patches in VM anonymous classes.
The fix is to adjust the type, if a constant value is an array.

ciTypeFlow::StateVector::do_ldc has too strong assertion. Since 
basic_type = {T_OBJECT|T_ARRAY}, obj->is_array() should be also 
expected.

Testing: failing tests, regression test.

Thanks!

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list