Bug 15030 – [REG2.068.1] ICE with recursive delegate, -unittest, and std.range

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2015-09-08T21:22:00Z
Last change time
2015-10-12T21:55:08Z
Keywords
ice, pull
Assigned to
nobody
Creator
code

Comments

Comment #0 by code — 2015-09-08T21:22:48Z
cat > modA.d << CODE import std.range; CODE cat > modB.d << CODE unittest { import std.algorithm; import std.range; auto dg = (int[] delegate(int[]) self) => (int[] arr) => arr ? self(arr.filter!(a => a).array) : null; } CODE dmd -unittest -c modA.d modB.d ---- dmd: glue.c:1060: void FuncDeclaration_toObjFile(FuncDeclaration*, bool): Assertion `!v->csym' failed. ----
Comment #1 by code — 2015-09-08T21:40:27Z
Comment #2 by k.hara.pg — 2015-09-09T02:54:25Z
Comment #3 by github-bugzilla — 2015-09-09T12:29:37Z
Commits pushed to stable at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/d96a64973467d54a91693f87511da7289d1e1b71 fix Issue 15030 - ICE with recursive delegate, -unittest, and std.range Refer the detailed explanation in `test/runnable/ice15030.d`. https://github.com/D-Programming-Language/dmd/commit/ea5d85af7abf0b1e36fd42a8d98fd692a765dea0 Merge pull request #5058 from 9rnsr/fix15030 [REG2.068.1] Issue 15030 - ICE with recursive delegate, -unittest, and std.range
Comment #4 by github-bugzilla — 2015-09-09T22:24:11Z
Comment #5 by k.hara.pg — 2015-09-10T05:16:28Z
*** Issue 15034 has been marked as a duplicate of this issue. ***
Comment #6 by dlang-bugzilla — 2015-10-12T21:55:08Z
After a minor update, forum.dlang.org displayed a blank page as the index page today for a few minutes. For some reason, the group information array was empty after startup. The problem manifested only with 2.068.1, and not 2.067.1 or 2.068.2. I bisected the fix and DMD PR #5058 seems to have fixed it... thus, it's possible that this issue can also manifest as a wrong-code bug. If anyone is interested I could try to debug this further and produce a test case.