Thread overview
[Issue 20235] C++ ABI doesn't destruct struct arguments in the callee
Sep 21, 2019
kinke
Nov 29, 2019
Dlang Bot
3 days ago
Dlang Bot
September 21, 2019
https://issues.dlang.org/show_bug.cgi?id=20235

kinke <kinke@gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kinke@gmx.net

--- Comment #1 from kinke <kinke@gmx.net> ---
(In reply to Suleyman Sahmi (سليمان السهمي) from comment #0)
> This causes some double free bugs.

Double free/destruction if caller is in C++ and callee in D, no destruction at all the other way around.

--
September 22, 2019
https://issues.dlang.org/show_bug.cgi?id=20235

--- Comment #2 from Suleyman Sahmi (سليمان السهمي) <sahmi.soulaimane@gmail.com> ---
> Double free/destruction if caller is in C++ and callee in D, no destruction at all the other way around.
Yes.

--
November 29, 2019
https://issues.dlang.org/show_bug.cgi?id=20235

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
@SSoulaimane updated dlang/dmd pull request #10593 "Fix issue 20235 - caller destroys arguments on POSIX" fixing this issue:

- Fix issue 20235 - caller destroys arguments on POSIX

  On Windows arguments are destroyed in the callee regardless of which calling
convention is used (cdecl, stdcall... etc), 32bits and 64bits alike.

  On the other platforms, the caller destroys the arguments if the caller
cleans the stack.

https://github.com/dlang/dmd/pull/10593

--
October 09
https://issues.dlang.org/show_bug.cgi?id=20235

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |bugzilla@digitalmars.com

--
October 09
https://issues.dlang.org/show_bug.cgi?id=20235

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |industry

--
3 days ago
https://issues.dlang.org/show_bug.cgi?id=20235

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
@WalterBright created dlang/dmd pull request #12012 "Reboot of Fix issue 20235 - caller destroys arguments on POSIX #10593" fixing this issue:

- Fix issue 20235 - caller destroys arguments on POSIX

  On Windows arguments are destroyed in the callee regardless of which calling
convention is used (cdecl, stdcall... etc), 32bits and 64bits alike.

  On the other platforms, the caller destroys the arguments if the caller
cleans the stack.

https://github.com/dlang/dmd/pull/12012

--