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
