Bug 8720 – ICE(glue.c, !vthis->csym)

Status
RESOLVED
Resolution
WORKSFORME
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-09-24T11:56:00Z
Last change time
2013-10-06T23:47:28Z
Keywords
ice
Assigned to
nobody
Creator
puremagic

Comments

Comment #0 by puremagic — 2012-09-24T11:56:15Z
C:\ResourceCompiler\RC.Exe /fo "C:\Users\suicide\Desktop\Flowd\Flowd\Flowd\obj\Debug\Win32Manifest.res" "C:\Users\suicide\Desktop\Flowd\Flowd\Flowd\Resources\Win32Manifest.rc" Current dictionary: C:\Users\suicide\Desktop\Flowd\Flowd\Flowd C:\D\dmd2\windows\bin\dmd.exe -gc -debug "main.d" "obj\Debug\Win32Manifest.res" "flowd.d" "kernel32.lib" "gdi32.lib" -I"C:\D\dmd2\src\druntime\import" -I"C:\D\dmd2\src\phobos" -odobj\Debug -of"C:\Users\suicide\Desktop\Flowd\Flowd\Flowd\bin\Debug\Flowd.exe" -L/su:windows -L/exet:nt Assertion failure: '!vthis->csym' on line 727 in file 'glue.c' Exit code 1 Erzeugung abgeschlossen -- 1 Fehler, 0 Warnungen ---------------------------------------------------------------- Code dpaste or attachment: Part 1: http://dpaste.dzfl.pl/63ccc16c Part 2: http://dpaste.dzfl.pl/66116248 ---------------------------------------------------------------- probably caused by this line: auto filtered = this._flowConnections.filter!( (a)=>(a.inputSlot != inputSlot))(); using dmd 2.60
Comment #1 by tmn.dbugs — 2012-11-02T04:27:00Z
I get this with the following test case: ---------------- module b; void call(alias fun)() { fun(0); } ---------------- module a; import b; class A { void foo(int c) { call!(a => c); } } ---------------- > dmd b.d a.d dmd: glue.c:727: virtual void FuncDeclaration::toObjFile(int): Assertion `!vthis->csym' failed. In addition, if I remove the class around the function foo, then I get the ICE described in issue 2962: ---------------- module b; void call(alias fun)() { fun(0); } ---------------- module a; import b; void foo(int c) { call!(a => c); } ---------------- > dmd b.d a.d a.d(5): Error: function a.foo compiler error, parameter 'c', bugzilla 2962? dmd: glue.c:758: virtual void FuncDeclaration::toObjFile(int): Assertion `0' failed. (Using DMD64 D Compiler v2.060 on Linux)
Comment #2 by clugdbug — 2012-11-13T11:34:27Z
Probably a duplicate of bug 7827, bug 4129, or bug 4481.
Comment #3 by tmn.dbugs — 2012-11-16T00:34:54Z
This is definitely same as issue 8071, which is marked as a duplicate of issue 4481. However, I am not sure if this actually is the same as issue 4481. At least the original code given in 4481 compiles fine for me. On the other hand, the second example given by Ola Østtveit again triggers the same error. In fact, I hit this too when trying to use std.algorithm as in 8071. In many cases the bug makes usage of std.algorithm impossible.
Comment #4 by bugzilla — 2013-10-06T23:47:28Z
(In reply to comment #1) > I get this with the following test case: > > ---------------- > module b; > void call(alias fun)() { > fun(0); > } > ---------------- > module a; > import b; > class A { > void foo(int c) { > call!(a => c); > } > } > ---------------- No error with 2.064 head. > > dmd b.d a.d > dmd: glue.c:727: virtual void FuncDeclaration::toObjFile(int): Assertion > `!vthis->csym' failed. > > > In addition, if I remove the class around the function foo, then I get the ICE > described in issue 2962: > > ---------------- > module b; > void call(alias fun)() { > fun(0); > } > ---------------- > module a; > import b; > void foo(int c) { > call!(a => c); > } > ---------------- > > > dmd b.d a.d > a.d(5): Error: function a.foo compiler error, parameter 'c', bugzilla 2962? > dmd: glue.c:758: virtual void FuncDeclaration::toObjFile(int): Assertion `0' > failed. No error with 2.064 head.