Bug 9189 – (D1 only) ICE on simple valid code since dmd 1.074

Status
RESOLVED
Resolution
WORKSFORME
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D1 (retired)
Platform
All
OS
All
Creation time
2012-12-20T00:22:00Z
Last change time
2012-12-22T18:13:38Z
Keywords
ice
Assigned to
nobody
Creator
verylonglogin.reg
Blocks
9188

Comments

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.