https://issues.dlang.org/show_bug.cgi?id=15075
Issue ID: 15075
Summary: wrong code with vector assignment of static struct
elements
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Keywords: wrong-code
Severity: major
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
This fails depending on T:
----
alias T = long;
void main()
{
T[2] a1 = [1, 2];
T[2][1] a2;
a2[] = a1; /* line 6 */
assert(a2[0] == a1); /* line 7 */
}
----
If T is long or double, it segfaults on line 6.
If T is ulong, the assert on line 7 fails.
It works with (u)byte, (u)short, (u)int, float, and real.
The problem seems to be with 8 byte wide types.
Tested with git head, 2.067, and 2.068.
--