RFR(XS) : JDK-8009552 - test/vm/verifier/TestStaticIF.java failing with hs25.0-b20

David Holmes david.holmes at oracle.com
Fri Mar 8 06:04:20 UTC 2013


Hi Bharadwaj,

Given 8009697 [1] this work would only seem to be one part of what is 
needed to use invokestatic with an interface method.

David
-----

[1] 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
> follows:
>
> 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.
>
> Thanks,
>
> Bharadwaj
>
>



More information about the core-libs-dev mailing list