[lworld] RFR: 8281279: [lworld] Add JVM support for ACC_PERMITS_VALUE [v3]

Frederic Parain fparain at openjdk.java.net
Mon Feb 7 18:05:14 UTC 2022


On Mon, 7 Feb 2022 15:15:13 GMT, Harold Seigel <hseigel at openjdk.org> wrote:

>> Please review this fix to add JVM support for ACC_PERMITS_VALUE.  This change throws an ICCE exception when loading a value class whose super class is not java.lang.Object or does not have ACC_PERMITS_VALUE set.  The fix was tested with Mach5 tiers 1-2 on Linux, Mac OS, and Windows and Mach5 tiers 3-5 on Linux x64.
>> 
>> Thanks, Harold
>
> Harold Seigel has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update test TestResolvedJavaType.java

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

> 4594:       return;
> 4595:     }
> 4596: 

This is not the behavior written in the JVMS draft for value classes, which requires the direct super class of a value class to have the ACC_PERMITS _VALUE flag set. However, because we haven't changed java.lang.Object into an abstract class, java.lang.Object cannot have the ACC_PERMITS _VALUE flag set. Currently, I see no other solution than the one you have implemented, adding a special case when the direct super class is java.lang.Object. But it would be useful to add a comment in the source code and the CR to remember and track this discrepancy.

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

PR: https://git.openjdk.java.net/valhalla/pull/632



More information about the valhalla-dev mailing list