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.