Bug 7827 – ICE(glue.c, !vthis->csym) delegate and type inference
Status
RESOLVED
Resolution
WORKSFORME
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-04-05T02:34:00Z
Last change time
2013-10-07T13:36:23Z
Keywords
ice
Assigned to
nobody
Creator
doob
Comments
Comment #0 by doob — 2012-04-05T02:34:43Z
When I try to use a delegate as template parameter and type inference DMD asserts with this message:
Assertion failed: (!vthis->csym), function toObjFile, file glue.c, line 686.
https://github.com/D-Programming-Language/dmd/blob/master/src/glue.c#L686
I haven't been able to find a reduced test case but this is the code that fails:
https://github.com/jacob-carlborg/phobos/blob/terminal/std/event.d#L113
If I changed that line to:
eventHandlers = .remove!((e) { return e == eventHandler; })(eventHandlers);
Or
eventHandlers = .remove!(e => e == eventHandler)(eventHandlers);
The assert is triggered. I'm using:
DMD: b41a2c360f09b83e4de6951f1e7538372319704f
Druntime: b41a2c360f09b83e4de6951f1e7538372319704f
Phobos: b93e9c9fd47fe309bb422408cbedc5897d87c368
I'm compiling on Mac OS X for 32bit.
Comment #1 by clugdbug — 2012-04-05T03:26:46Z
This is probably a duplicate of bug 4129.
Two others which ICE at the same place are bug 6896 and bug 4481.
Comment #2 by bugzilla — 2013-10-06T22:18:42Z
Jacob - since 4481 and 6896 appear to be fixed, and 4129 is D1 only, can you see if this still is a problem here?
Comment #3 by doob — 2013-10-07T00:49:58Z
(In reply to comment #2)
> Jacob - since 4481 and 6896 appear to be fixed, and 4129 is D1 only, can you
> see if this still is a problem here?
I cannot reproduce this error anymore.