You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CallConvMemberFunction is a new unmanaged calling convention modifier that can be applied in combination with another calling convention on x86 that can be used to modify a cdecl, stdcall or fastcall calling convention to call a member function.
For reference, the CoreCLR support was added in #47828
Note that there are tests that are disabled that reference this issue, see #50461
The text was updated successfully, but these errors were encountered:
Windows x64 on Mono needs support for CallConvMemberFunction since win64 ABI handles value types differently for member functions, compared to global/static functions. The following runtime tests have been disabled on Mono Windows in issues.targets depending on this issue:
Failures are caused by delegates using CallConvMemberFunction and since Mono currently don't detect it, it will handle the pinvoke following win64 ABI defined for global/static functions, but in cases where returned type is a value type and CallConvMemberFunction is used, it should pass allocated return value address in first argument register (regardless of size), or in the case of a C++ member function, in the second argument register (this pointer goes in first argument).
That is, implement the Mono part of #46775
CallConvMemberFunction
is a new unmanaged calling convention modifier that can be applied in combination with another calling convention on x86 that can be used to modify a cdecl, stdcall or fastcall calling convention to call a member function.For reference, the CoreCLR support was added in #47828
Note that there are tests that are disabled that reference this issue, see #50461
The text was updated successfully, but these errors were encountered: