RFR(XS) : JDK-8009552 - test/vm/verifier/TestStaticIF.java failing with hs25.0-b20
david.holmes at oracle.com
Fri Mar 8 06:04:20 UTC 2013
Given 8009697  this work would only seem to be one part of what is
needed to use invokestatic with an interface method.
 The JVMS 4.9.2 states:
"Each invokespecial instruction must name an instance initialization
method (§2.9), a method in the current class, or a method in a
superclass of the current class. "
Hence no calls to an inherited interface presently allowed.
On 8/03/2013 7:14 AM, Bharadwaj Yadavalli wrote:
> I would like to request for a review of changes whose details are as
> Bug fixed: https://jbs.oracle.com/bugs/browse/JDK-8009552
> Webrev: http://cr.openjdk.java.net/~bharadwaj/8009552/webrev/
> Summary of changes :
> To support JDK 8 features, javac now generates invokespecial
> instructions to reference interface methods. The proposed change
> modifies bytecode verification (in old verifier) of Java 8 classfiles to
> allow invokespecial to refer to methods in CONSTANT_InterfaceMethodref
> as well as in CONSTANT_Methodref. Consequently, class hierarchy walk to
> validate the operand of invokespecial is restricted to classes with
> version less than 52.
> Note that this change is to the old verifier. The new verifier (split
> verifier) already handles this.
More information about the core-libs-dev