RFR (S): 8202465: C1: Casts should not be eliminated for interface types
vladimir.x.ivanov at oracle.com
Thu May 3 02:33:35 UTC 2018
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
More information about the hotspot-compiler-dev