Skip to content
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

Enable non-blittable struct returns on UnmanagedCallersOnly #45625

Open
wants to merge 3 commits into
base: master
from

Conversation

@jkoritzinsky
Copy link
Member

@jkoritzinsky jkoritzinsky commented Dec 5, 2020

Now that #39294 is merged, we no longer need to require a stub when we return a non-primitive value type. This PR removes that restriction, which enabled using blittable value type returns with UnmanagedCallersOnly. This PR also enables passing the calling convention from UnmanagedCallersOnly to the JIT at both runtime and during crossgen with crossgen2. This enables the UnmanagedCallersOnly entrypoint to have the correct calling convention even though the entrypoint is technically managed.

This PR blocks crossgenning UnmangedCallersOnly methods in crossgen1 because the custom attribute parsing code is not currently included in crossgen1 and I didn't want to fight to get that hooked up since we're looking at deprecating/removing crossgen1 in the .NET 6 time frame anyway.

Fixes #35928.

jkoritzinsky added 3 commits Dec 3, 2020
…e JIT. Block UnmanagedCallersOnly in crossgen1 since the attribute parsing code isn't included.
…ly in crossgen2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

1 participant
You can’t perform that action at this time.