RFR: 8262368: wrong verifier message for bogus return type [v2]

Coleen Phillimore coleenp at openjdk.java.net
Mon Mar 1 16:29:43 UTC 2021


On Mon, 1 Mar 2021 16:04:17 GMT, Harold Seigel <hseigel at openjdk.org> wrote:

>> Please review this small change to fix some verifier error messages.  If a method's descriptor has a void return signature, but contains a bytecode such as 'ireturn' or 'areturn'. then it will get a VerifyError exception with the message "Method descriptor has a void return type".   Conversely, if a method's descriptor has a non-void return signature, but contains a 'return' bytecode then it will get a VerifyError exception with the message "Method descriptor has a non-void return type".
>> 
>> A sample error message looks like:
>> Error: Unable to initialize main class Hi
>> Caused by: java.lang.VerifyError: Method descriptor has a void return type
>> Exception Details:
>>   Location:
>>     Hi.noRet(I)V @1: ireturn
>>   Reason:
>>     Type integer (current frame, stack[0]) is not assignable to top (from method signature)
>>   Current Frame:
>>     bci: @1
>>     flags: { }
>>     locals: { integer }
>>     stack: { integer }
>>   Bytecode:
>>     0000000: 08ac
>> 
>> The fix was tested with Mach5 tiers 1 and 2 on Linux, Mac OS, and Windows, tiers 3-5 on Linux x64. and the JCK Lang and VM tests on Linux x64.
>> 
>> Thanks, Harold
>
> Harold Seigel has updated the pull request incrementally with one additional commit since the last revision:
> 
>   changed error message text

Looks good with the fixed message.  I agree that it took me an extra minute to understand the new messages, so the old ones (corrected) are fine.  Nice simple test.

test/hotspot/jtreg/runtime/verifier/ReturnMsgs.java line 28:

> 26:  * @bug 8262368
> 27:  * @summary Test that VerifyError messages are correct when return bytecodes
> 28:  *          andd method signatures do not match.

typo, andd

-------------

Marked as reviewed by coleenp (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/2757


More information about the hotspot-runtime-dev mailing list