https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124157

--- Comment #5 from Iain Buclaw <ibuclaw at gcc dot gnu.org> ---
Also confirmed from -fdump-d-original output.


```d
// NOTE: Returns pointer
_d_assocarrayliteralTX!(int, string)
{
        pure nothrow @safe Impl!(int, string)* _d_assocarrayliteralTX(int[]
keys, string[] vals)
        {
                // ...
        }
}

// NOTE: ABI of aa parameter is: struct AA{void* ptr;}
values!(string, int)
{
        auto pure nothrow @property @safe string[] values(inout(string[int])
aa)
        {
                return _aaValues(aa);
        }

}

/// !!! BOOM: Passing pointer to function that accepts a struct.
void main()
{
        string[] a = values(_d_assocarrayliteralTX([5], ["hello"]));
        return 0;
}
```

Reply via email to