import std.stdio; struct sss { short a,b,c; } sss ret_sss(){ return sss(1,2,3); } void main() { writeln( ret_sss() ); } --- sometimes prints "sss(1,2,1)" sometimes prints "sss(1,2,0)" I believe the problem was introduced in commit 5a10d078 backend/cgelem.c: elstruct() case 5,6,7 https://github.com/D-Programming-Language/dmd/commit/5a10d078687f4b87f4c2d1f2c76af4d560819c91 Note: test/runnable/testabi.d has a test case for this, currently disabled, please enable it once fixed.
https://github.com/D-Programming-Language/dmd/pull/2391