[lworld] RFR: 8326597: [lworld] Verifier must enforce new JEP 401 rules related to strict fields

Dan Heidinga heidinga at openjdk.org
Fri Jun 14 02:57:46 UTC 2024


On Fri, 24 May 2024 05:07:40 GMT, David Holmes <dholmes at openjdk.org> wrote:

> There are a number of commits here relating to different changes. To keep things more simple you can look at them individually.
> 
> Changes:
> - removed the old Q-type support from the verifier (verifierType.hpp/cpp)
> - added the necessary checks for strict fields to the verifier and added some tests
> - added missing class modifier checks for value classes in the classfile parse
> - brought the field modifier checks in classfile parser into line with JEP 401, simplified logic and provided more informative exception messages.
> - updated existing tests to  support the above
> 
> There is still a lot of inline-type terminology remaining, at least some of which should be cleaned up in future RFE's

src/hotspot/share/classfile/classFileParser.cpp line 4722:

> 4720:   const bool major_gte_1_5 = _major_version >= JAVA_1_5_VERSION;
> 4721: 
> 4722:   const bool valid_value_class = is_identity || is_interface ||

Why is `is_identity` included in `valid_value_class`?  I would have expected identity to flag a class as an invalid value class.  Maybe this is just a naming issue with the `valid_value_class` variable?

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/1109#discussion_r1618905839



More information about the valhalla-dev mailing list