www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15075] New: wrong code with vector assignment of static


          Issue ID: 15075
           Summary: wrong code with vector assignment of static struct
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Keywords: wrong-code
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: ag0aep6g gmail.com

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.

Sep 16 2015