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.

--

Reply via email to