https://issues.dlang.org/show_bug.cgi?id=16243
--- Comment #2 from Martin Nowak <c...@dawg.eu> --- Also fails with a single int argument. cat > cpp.cc << CODE #include <stdio.h> struct S13956 { }; void check13956(S13956 arg0, int arg1); void func13956(S13956 arg0, int arg1) { printf("C %d\n", arg1); check13956(arg0, arg1); } CODE cat > bug.d << CODE import core.stdc.stdio; struct S13956 { } extern(C++) void func13956(S13956 arg0, int arg1) { check13956(arg0, arg1); } extern(C++) void check13956(S13956 arg0, int arg1) { printf("C %d\n", arg1); assert(arg0 == S13956()); assert(arg1 == 1); } void main() { func13956(S13956(), 1); } CODE c++ -m32 -c cpp.cc dmd -m32 cpp.o -run bug --