https://issues.dlang.org/show_bug.cgi?id=23181
Iain Buclaw <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Iain Buclaw <[email protected]> --- In the release binaries of dmd, you can see that there is a run-time regression as well. --- void main() { struct hasDtor { import core.stdc.stdio; int count; ~this() { printf("dtor(%d)\n", count); } } hasDtor[4] arr4 = hasDtor(4); } --- dtor(1) dtor(37) dtor(0) dtor(0) dtor(4) dtor(4) dtor(4) dtor(4) --- Because the codegen is calling _d_arraysetassign, the destructor is being ran on the uninitialized array. --
