-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[clr-interp] Fix issues found in the startup path with the interpreter #118497
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
[clr-interp] Fix issues found in the startup path with the interpreter #118497
Conversation
davidwrighton
commented
Aug 7, 2025
- Fix virtual function resolution might not handle dispatch to a shared generic method if the exact type of the method is visible at compile time
- Fix ldelema for an array of reference types doesn't handle shared generics properly
- Fix issue where the readonly prefix for ldelema is ignored
- Add a new opcode - Add a new invocation method. Note that this needs to have the same copy the CallStubHeader logic as calli, as the target is not consistent from use to use
Co-authored-by: Copilot <[email protected]>
…dwrighton/runtime into MakeDelegateInvokeIntrinsic
Co-authored-by: Jan Kotas <[email protected]>
This change fixes the following issues: * Reverse pinvoke to method marked by UnmanagedCallersOnly attribute. The InterpExecMethod is entered in GC preemptive mode in that case, but it is expected to run in GC cooperative mode. * Pinvoke to method marked by SuppressGCTransition attribute . The pinvoke is entered in GC preemtive mode, but it needs to be called in GC cooperative mode. * Calling a delegate or a similar case when IL stub is used. The interpreter code is set only on the IL stub MethodDesc, but it needs to be set on both the IL stub and the original MethodDesc.
Co-authored-by: Jan Kotas <[email protected]>
Co-authored-by: Jan Kotas <[email protected]>
No longer needed after the previous commit
…nto MakeDelegateInvokeIntrinsic
- Fix virtual function resolution might dispatch to the wrong location - Fix ldelema for an array of reference types doesn't handle shared generics properly - Fix the readonly prefix for ldelema is ignored.
…dwrighton/runtime into MakeDelegateInvokeIntrinsic
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.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
Tagging subscribers to this area: @mangod9 |
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.
LGTM, thank you!