On Mon, 31 Aug 2026 14:29:46 GMT, Matias Saavedra Silva <[email protected]> 
wrote:

>> Early_larval frames can only apply to frames with the uninitializeThis flag 
>> set, however, this rule was not properly being enforced. Instead, the 
>> verifier looked at the state of uninitializedThis for the previous frame, so 
>> this patch moves this check until after the nested frame has been parsed. 
>> Verified with a new regresson test case and tier 1-5 tests.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Matias Saavedra Silva has updated the pull request with a new target base due 
> to a merge or a rebase. The pull request now contains 11 commits:
> 
>  - Removed satisfy_unset_field error
>  - Merge branch 'master' of github.com:openjdk/jdk into 
> early_larval_verifier_8390256
>  - Removed unused flag, moved AssertUnsetFields definition, aligned change to 
> spec
>  - Test fix and cleanup
>  - Dan offline comments
>  - Added tests and fixes for oddly ordered frames
>  - Fixed crash
>  - Cleanup
>  - Added test and fix for unusual frame ordering
>  - Updated test
>  - ... and 1 more: https://git.openjdk.org/jdk/compare/f8c6117c...f7c0a206

src/hotspot/share/classfile/verifier.cpp line 2423:

> 2421: 
> 2422:           if (fd.access_flags().is_strict()) {
> 2423:             if (!current_frame->satisfy_unset_field(fd.name(), 
> fd.signature(), initial_strict_fields)) {

Why are we checking this here?

The initial set of strict fields is built from iterating the class's fields so, 
by construction, any `fd.access_flags().is_strict()` must be in that initial 
set.

We have to check for non-strict fields being named in the early_larval frames 
when parsing the StackMapTable, but shouldn't need to check that here during 
the verification stage

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

PR Review Comment: https://git.openjdk.org/jdk/pull/32459#discussion_r3883241605

Reply via email to