[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2018-02-24 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #18 from Walter Bright --- Temporary workaround --

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2018-02-24 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #17 from Walter Bright --- On Linux x86, given the code: struct S { }; int test(S s, int a) { return a; } g++ produces: mov EAX,8[ESP] ret while clang++ produces: mov EAX,4[ESP] ret This

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2018-02-24 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #16 from Walter Bright --- With the upgrade to FreeBSD 11, this is now happening on 32 bit FreeBSD. --

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2018-02-24 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #15 from Walter Bright --- *** Issue 18514 has been marked as a duplicate of this issue. *** --

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2018-02-24 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 Walter Bright changed: What|Removed |Added Keywords||C++ --

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2017-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #14 from Jacob Carlborg --- (In reply to Joakim from comment #13) > dmd and ldc work with the gcc approach, but not clang's. Clang is the native compiler on macOS, so I would say that we should go with whatever Clang is

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2017-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #13 from Joakim --- I spent a little time looking into this again. The issue now appears to only be reproducible if clang compiles without any optimizations, which is what the dmd testsuite does. When run without

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-09-19 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #12 from Jacob Carlborg --- I've been using Clang for ages now and it passes the test suite, at least for 64bit. I'm running Apple LLVM version 7.3.0 (clang-703.0.31) --

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-09-18 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #11 from Brad Roberts --- I haven't tested building with clang on osx in ages. If it's at the point of passing tests then I'd be happy to convert any/all of the three testers back to their default compiler. --

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-09-13 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #10 from Joakim --- I ran into this on Android/ARM too, with ldc. As the linked ldc comment and Jacob note, this is an incompatibility in the way clang and gcc work with empty structs on every platform, whether

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-09-12 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #9 from Jacob Carlborg --- (In reply to kinke from comment #4) > clang doesn't pass empty structs at all for 32-bit, while GCC does. We have > such a special case in LDC too for 32-bit OSX, where we assume clang, but > not

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-09-12 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #8 from Jacob Carlborg --- (In reply to Martin Nowak from comment #7) > We also have that issue with GCC5's C++ ABI change > (http://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/), so > detecting the actual

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-09-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 Martin Nowak changed: What|Removed |Added CC||bra...@puremagic.com ---

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-07-27 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 Jacob Carlborg changed: What|Removed |Added CC||d...@me.com --- Comment #6

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-07-26 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 Walter Bright changed: What|Removed |Added CC|

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-07-24 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 ki...@gmx.net changed: What|Removed |Added CC||ki...@gmx.net --- Comment #4 from

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-07-24 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 Martin Nowak changed: What|Removed |Added Severity|normal |regression --- Comment #3 from

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-07-07 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 --- Comment #2 from Martin Nowak --- Also fails with a single int argument. cat > cpp.cc << CODE #include struct S13956 { }; void check13956(S13956 arg0, int arg1); void func13956(S13956 arg0, int arg1) { printf("C %d\n",

[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243 Martin Nowak changed: What|Removed |Added Summary|wrong argument passed with |wrong C++ argument passing