Thread overview
[Issue 16527] extern( C++ ) Win64 build - return struct by value is broken
Sep 24, 2016
kinke@gmx.net
Jan 16, 2017
Sprink
May 23, 2017
anonymous4
May 14, 2018
Ethan Watson
September 24, 2016
https://issues.dlang.org/show_bug.cgi?id=16527

--- Comment #1 from kinke@gmx.net ---
We have a special case for this in LDC. MSVC passes `this` before `sret`, unlike most other ABIs.

--
January 16, 2017
https://issues.dlang.org/show_bug.cgi?id=16527

Sprink <sprink.noreply@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sprink.noreply@gmail.com

--- Comment #2 from Sprink <sprink.noreply@gmail.com> ---
The problem is that there's no way to properly model a pointer to a member function to C++ from D. You can't use a delegate as it isn't supported with extern(C++). So there's no way for it to know that the parameter you are passing is actually a "this". Taking the address of a member function without an object is also broken (#3720).

--
May 23, 2017
https://issues.dlang.org/show_bug.cgi?id=16527

anonymous4 <dfj1esp02@sneakemail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |C++
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=13207

--
May 14, 2018
https://issues.dlang.org/show_bug.cgi?id=16527

Ethan Watson <gooberman@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |WORKSFORME

--- Comment #3 from Ethan Watson <gooberman@gmail.com> ---
Looks like this issue was fixed somewhere along the line. Example code works just fine on run.dlang.org, and the interop code I was working on for C# that was returning structs was also working just fine on DMD 2.078. No idea when exactly this would have been fixed, but it certainly Works For Me! now.

--