[Issue 15607] New: [ICE] CTFE internal error: bad compare on accessing default-initialized static immutable array of array
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon Jan 25 12:52:07 PST 2016
https://issues.dlang.org/show_bug.cgi?id=15607
Issue ID: 15607
Summary: [ICE] CTFE internal error: bad compare on accessing
default-initialized static immutable array of array
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Keywords: ice, ice-on-valid-code
Severity: major
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: mathias.lang at sociomantic.com
CC: public at dicebot.lv
The following code:
```
private static immutable char[2][ubyte.max + 1] code_base = [ 0: "??" ];
static assert(code_base[0] == "??");
static assert(code_base[1] == typeof(code_base[1]).init);
```
results in:
crash.d(3): Error: CTFE internal error: bad compare
core.exception.AssertError at ctfeexpr.d(1367): Assertion failure
----------------
??:? _d_assert [0x6cb907]
??:? void ddmd.ctfeexpr.__assert(int) [0x4f53b4]
This is just a manifestation of what I believe is a wider bug.
E.g. the following:
```
private static immutable char[2][ubyte.max + 1] code_base;
static assert(code_base[1] == typeof(code_base[1]).init);
```
Results in:
```
crash.d(3): Error: static variable code_base cannot be read at compile time
crash.d(3): while evaluating: static assert(code_base[1] == ['\xff',
'\xff'])
```
Tested with 2.066, 2.069 and master (DMD64 D Compiler v2.069-devel-1adb2f0)
And it's a D1 regression ;)
--
More information about the Digitalmars-d-bugs
mailing list