[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