-
Notifications
You must be signed in to change notification settings - Fork 776
Check stack map if type changed in the exception table range #22889
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
e60570d to
8961174
Compare
15f4e78 to
029331c
Compare
|
@tajila this is ready for review. |
|
This has a conflict. |
Signed-off-by: Theresa Mammarella <[email protected]>
Fixed. |
babsingh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
functionally, these changes look good. i have noted a few minor nits in my comments. @gacholio should review these changes as well.
J9 has been validating the type state for exceptions after astore changes the type. This is incorrect since according to JVMS 4.10.1.4 the state of a stack map frame is the incoming state of an instruction. This means that the type state of astore is the state before the new local is set. Instead only compare the type state for exceptions if astore changes the type state and another bytecode within the range of the exception exists to make sure its still compatible. Signed-off-by: Theresa Mammarella <[email protected]>
|
jenkins test sanity.functional,sanity.openjdk zlinux jdk8 |
|
jenkins test sanity.functional,sanity.openjdk amac jdk21,jdk25 |
|
jenkins test sanity.functional,sanity.openjdk plinux jdk17 |
|
jenkins compile win jdk11 |
J9 has been validating the type state for exceptions after astore
changes the type. This is incorrect since according to JVMS
4.10.1.4 the state of a stack map frame is the incoming state
of an instruction. This means that the type state of astore is
the state before the new local is set.
Instead only compare the type state for exceptions if astore
changes the type state and another bytecode within the range
of the exception exists to make sure its still compatible.
Fixes: #22812
Internal tests:
Java 25: https://hyc-runtimes-jenkins.swg-devops.com/view/Test_grinder/job/Grinder/56075
Java 11: https://hyc-runtimes-jenkins.swg-devops.com/view/Test_grinder/job/Grinder/56076/
IBM Java 8: http://vmfarm.rtp.raleigh.ibm.com/build_info.php?build_id=105944