-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[mono][interp] "Arg storage type not yet supported" on specific P/Invoke method signature #82976
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @BrzVlad, @kotlarmilos Issue DetailsDescriptionOn an iOS project, with mono interpreter enabled, calling a P/Invoke method that has its 9th argument or upwards with a struct type that's larger than 16 bytes results in the following error:
Method signature: [DllImport(Constants.ObjectiveCLibrary, EntryPoint = "objc_msgSend")]
private static extern void method(
IntPtr a = default, // 1st argument, can be any type
IntPtr b = default, // 2nd argument, can be any type
IntPtr c = default, // 3rd argument, can be any type
IntPtr d = default, // 4th argument, can be any type
IntPtr e = default, // 5th argument, can be any type
IntPtr f = default, // 6th argument, can be any type
IntPtr g = default, // 7th argument, can be any type
IntPtr h = default, // 8th argument, can be any type
StructMoreThan16Bytes i = default); // 9th+ argument, struct type larger than 16 bytes Reproduction Steps
Expected behaviorApplication runs successfully and displays "Called P/Invoke method successfully!" at the centre. Actual behaviorApplication crashes with the following:
Regression?No response Known WorkaroundsDisabling Mono interpreter resolves the issue, but I need it enabled in the first place to work around #69410, realm/realm-dotnet#3100, and other JIT compilation exceptions in AutoMapper. Configuration
Other informationNo response
|
Description
On an iOS project, with mono interpreter enabled, calling a P/Invoke method that has its 9th argument or upwards with a struct type that's larger than 16 bytes results in the following error:
Method signature:
Reproduction Steps
MonoInterpreterCrash1
to physical deviceExpected behavior
Application runs successfully and displays "Called P/Invoke method successfully!" at the centre.
Actual behavior
Application crashes with the following:
Regression?
No response
Known Workarounds
Disabling Mono interpreter resolves the issue, but I need it enabled in the first place to work around #69410, realm/realm-dotnet#3100, and other JIT compilation exceptions in AutoMapper.
Configuration
Other information
No response
The text was updated successfully, but these errors were encountered: