-
Notifications
You must be signed in to change notification settings - Fork 707
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
Fix stackmap always marking ConstantDynamic as objects #8752
Conversation
- Check Condy return type before marking stack slot Signed-off-by: Jack Lu <Jack.S.Lu@ibm.com>
I'd like @DanHeidinga to have a look before merge. |
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.
I'm OK with this.
An alternative approach would have been to switch on the J9DescriptionReturnTypeShift
types and assert on the long/double cases but the corresponding bytecodes already have that assert in place. I think we're ok without adding it here
@fengxue-IS It would be good to add tests for this case or identify a JTREG that already covers it |
This issue will be difficult to reproduce with random tests - the condy value needs to be on the pending stack when a GC occurs. Something like:
where the |
Should be easy enough to craft the above test and see that it crashes every time without the fix from this PR. |
I will look into adding a test case for this |
@DanHeidinga Does the verifier need a similar change, or is it already there? |
Verifier already does it correctly - see rtverify.c: which pushes the ldc type using: |
Jenkins test sanity zlinux jdk11 |
@DanHeidinga can you please restart the PR build, looks like it failed due to network issue
|
Jenkins test sanity zlinux jdk11 |
Jenkins test sanity zlinux jdk11 |
ported to 0.19 release in #877 |
Signed-off-by: Jack Lu Jack.S.Lu@ibm.com