digitalmars.D.bugs - [Issue 1409] New: Assertion failure: '0' on line 4799 in file 'expression.c'
- d-bugmail puremagic.com (51/51) Aug 09 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1409
- d-bugmail puremagic.com (28/28) Aug 10 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1409
- d-bugmail puremagic.com (4/4) Oct 09 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1409
- d-bugmail puremagic.com (12/12) May 14 2009 http://d.puremagic.com/issues/show_bug.cgi?id=1409
http://d.puremagic.com/issues/show_bug.cgi?id=1409 Summary: Assertion failure: '0' on line 4799 in file 'expression.c' Product: D Version: 1.020 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: sky quit-clan.de The compiler crashes on the following code (which is, in its current state, invalid - but i can't debug it because of the compiler crash). I'm sorry that i could not reduce it further. ----- import std.traits; private template XParameters(uint n, T...) { alias T[0..n] types; alias T[n..$] curried; } private template FuncOpcalls(uint i, alias F, alias parameters) { alias Func!(F, parameters.curried.length + i) NewFunc; NewFunc opCall(parameters.types[0..i] p) { return new NewFunc(parameters.curried, p); } static if (i < parameters.types.length) mixin FuncOpcalls!(i+1, F, parameters); } class Func(alias F, uint nCurried=0) { alias ParameterTypeTuple!(F) paramTypes; paramTypes[0..nCurried] curriedParameters; mixin FuncOpcalls!(1, F, XParameters!(paramTypes.length, paramTypes, curriedParameters)); } void add(int) { } alias Func!(add) c_add; ----- Compiler output: ----- Assertion failure: '0' on line 4799 in file 'expression.c' abnormal program termination ----- --
Aug 09 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1409 deewiant gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-invalid-code ------- Comment #1 from deewiant gmail.com 2007-08-10 09:01 ------- Reduced: -- import std.traits; template XParameters(T...) { alias T curried; } template FuncOpcalls(alias parameters) { alias Func!(parameters.curried + i) NewFunc; } class Func(alias F) { ParameterTypeTuple!(F) curriedParameters; mixin FuncOpcalls!(XParameters!(curriedParameters)); } alias Func!((int){}) c_add; -- Appears to be a known bug: a comment in expression.c says "BUG: handle other cases like in IdentifierExp::semantic()" just prior to the assert(0) which this hits. --
Aug 10 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1409 ------- Comment #2 from wbaxter gmail.com 2007-10-09 14:51 ------- Still there as of DMD 1.022. Line number is now 4826, though. --
Oct 09 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1409 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |clugdbug yahoo.com.au Resolution| |FIXED --- Comment #3 from Don <clugdbug yahoo.com.au> 2009-05-14 03:36:57 PDT --- Fixed sometime before DMD1.045 and 2.030. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 14 2009