RFR(xs): 8196920: VerifierTest_1A.java and VerifierTest_1B.java fail: assert(receiver_klass->is_subtype_of(static_receiver_klass))

David Holmes david.holmes at oracle.com
Wed Feb 14 01:48:44 UTC 2018


Hi Calvin,

Changes look good to me.

Aside: why does this test have unnecessary {} scopes ??

Thanks,
David

On 14/02/2018 9:23 AM, Calvin Cheung wrote:
> JBS: https://bugs.openjdk.java.net/browse/JDK-8196920
> (sorry, the bug was marked confidential)
> 
> webrev: http://cr.openjdk.java.net/~ccheung/8196920/webrev.00/
> (the above change was suggested by Ioi)
> 
> By design, the test created a unverifiable class:
> 
> Expected exception:
> java.lang.VerifyError: Call to wrong <init> method
> Exception Details:
>    Location:
>      UnverifiableBase.<clinit>()V @4: invokespecial
>    Reason:
>      Type 'java/lang/Object' (constant pool 4) is not assignable to 
> 'VerifierTest0' (constant pool 14)
> 
> Due to some recent changes, the test doesn't work with the following vm 
> options combination in hs-tier4 testing:
> -Xcomp -XX:-TieredCompilation -Xverify:none
> and resulting in assert in sharedRuntime.cpp:
> assert(receiver_klass->is_subtype_of(static_receiver_klass)) failed: 
> actual receiver must be subclass of static receiver klass
> 
> A fix is to replace the above with a "bad" method which will never be 
> executed during runtime:
> 
> Expected exception:
> java.lang.VerifyError: Operand stack underflow
> Exception Details:
>    Location:
>      UnverifiableBase.bad()V @0: areturn
>    Reason:
>      Attempt to pop empty stack.
> 
> thanks,
> Calvin


More information about the hotspot-runtime-dev mailing list