[11] RFR (S): 8202465: C1: Casts should not be eliminated for interface types

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu May 3 02:33:35 UTC 2018


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

Interface casts can't be eliminated when there's no exact type known for 
the object and its declared type is interface as well. Verifier doesn't 
enforce interface types, so there are no guarantees at runtime that 
values have interface types as declared in bytecode.

The fix checks that declared type of the object being casted is not an 
interface before performing subtype check.

Also, refactored the test to use jasm instead of jcod.

Testing: failing test, hs-precheckin-comp, hs-tier1, hs-tier2

Thanks!

Best regards,
Vladimir Ivanov


More information about the hotspot-compiler-dev mailing list