Comment #0 by verylonglogin.reg — 2012-12-20T00:22:16Z
This code used to compile but resultes in ICE since dmd 1.074:
---
struct S1 {
enum E { x }
E e;
const S1 s1 = S1(E.x);
void f() {
if(*this == s1) { }
}
}
struct S2 {
S1 s = S1.s1;
}
---
dmd 1.075 compiler output:
---
Assertion failure: '0' on line 1081 in file 'glue.c'
---
Comment #1 by bugzilla — 2012-12-20T00:39:52Z
This works in the D1 head.
Comment #2 by clugdbug — 2012-12-22T06:29:27Z
I can reproduce on Linux64, using D1 (Haven't yet checked if it happens with Phobos1, but definitely happens with Tango).
Comment #3 by verylonglogin.reg — 2012-12-22T06:59:27Z
(In reply to comment #2)
> I can reproduce on Linux64, using D1 (Haven't yet checked if it happens with
> Phobos1, but definitely happens with Tango).
Strange, it doesn't look like a platform-dependent bug. Please, specify exact commit you are using to build dmd.
Also confirm that 118d3da3a9b35911afbf2eae98084f75c33802f3 doesn't work for you as it works for me on Win32.
Comment #4 by bugzilla — 2012-12-22T18:13:38Z
I added the test case into the D1 test suite, and ran the full test suite on all platforms. No errors.