Enable return buffers on Windows ARM64 for struct-returning member functions (#23625)
authorJeremy Koritzinsky <jkoritzinsky@gmail.com>
Fri, 5 Apr 2019 19:52:00 +0000 (12:52 -0700)
committerGitHub <noreply@github.com>
Fri, 5 Apr 2019 19:52:00 +0000 (12:52 -0700)
commit04f97c9923156b0c695f5fe441ffd14624de8076
tree39dabb413ee77c1fc50b6b5f22f392a9f7d0e362
parent8d51f4253996baf64fca1c57c421fb42ac5762cd
Enable return buffers on Windows ARM64 for struct-returning member functions (#23625)

* Enable return buffers on Windows ARM64 for struct-returning member functions. Fixes #23577.

* Update comment to match new condition.

* Enable byref return on all Windows (excluding arm64 HFA. Add more test cases for ThisCall.

* On x86, if we have a normalized return value in an instance method, get back the actual type so that we correctly marshal it via a return buffer.

* Fix param ordering.

* Clean up based on PR feedback.

* Fix accidental variable shadowing.
src/vm/clrtocomcall.cpp
src/vm/comtoclrcall.cpp
src/vm/dispatchinfo.cpp
src/vm/dllimport.cpp
src/vm/ilmarshalers.h
src/vm/mlinfo.cpp
src/vm/mlinfo.h
tests/src/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallNative.cpp
tests/src/Interop/PInvoke/Miscellaneous/ThisCall/ThisCallTest.cs