RFR: 8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT

Dean Long dlong at openjdk.java.net
Fri Dec 17 21:40:30 UTC 2021


On Fri, 17 Dec 2021 02:36:00 GMT, David Holmes <dholmes at openjdk.org> wrote:

> Fix looks fine but I have to wonder what the actual affect is? Shouldn't this wrong type have been detected somewhere or caused an error ??
> 
> Thanks, David

(Sorry for the late comment, just saw this)

Yes, FTR, the effects were mostly unobservable because of workarounds.  There was an off-by-one problem with C1 debug info that could only be observed with -XX:+VerifyStack and stricter verification logic I was working on.

After this change, we could remove the workarounds.  For example, in the switch example above, the case for  Bytecodes::_arraylength can be combined with the group above.

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

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


More information about the hotspot-runtime-dev mailing list