www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 18450] New: ICE without line numbers on templated struct

https://issues.dlang.org/show_bug.cgi?id=18450

          Issue ID: 18450
           Summary: ICE without line numbers on templated struct
                    constructor call
           Product: D
           Version: D2
          Hardware: x86
                OS: Windows
            Status: NEW
          Keywords: ice
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: simen.kjaras gmail.com

DMD 2.078.2 on Windows.

This code:

struct S2(T) {
    T arr;
}

unittest {
    const S2!(int) b;
    S2!(const(int)) c = b; // Line 7
}

Gives this error:

foo.d(7): Error:
object.Error (0): Access Violation
----------------
0x0065445A
0x006548FE
0x0064DBD3
0x004B0B90
0x0043FC26
0x004C794B
0x01162110
0x011623E0

With a little wiggling of the types:

struct S2(T) {
    T arr;
}

unittest {
    const S2!(int[]) b;
    S2!(const(int[])) c = b;
}

I get an even more interesting:

foo.d(7): Error:
object.Error (0): Access Violation
----------------
0x0065445A
0x006548FE
0x0064DBD3
0x004B0B90
0x0043FC26
0x004C794B
0x773A8B88 in RtlFreeHeap
0x005797E2
0x00594C94
0x773A73F7 in RtlAllocateHeap
0x3F5011A9
0x05F6122D
0x175102F7
0x01CE5388
0x007201EF
0x01220042
0x047700C6
0x0021035A
0x05040000
0x001A0129
0x000106B4
0x00400063
0x001C00C6
0x00820021
0x00620063

--
Feb 16 2018