digitalmars.D.bugs - [Issue 6351] New: Regression(2.054) Segfault: Vararg delegate as template param
- d-bugmail puremagic.com (23/23) Jul 19 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6351
- d-bugmail puremagic.com (29/29) Aug 24 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6351
- d-bugmail puremagic.com (10/10) Aug 24 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6351
- d-bugmail puremagic.com (6/6) Aug 24 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6351
- d-bugmail puremagic.com (12/12) Aug 24 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6351
http://d.puremagic.com/issues/show_bug.cgi?id=6351 Summary: Regression(2.054) Segfault: Vararg delegate as template param Product: D Version: D2 Platform: Other OS/Version: Windows Status: NEW Severity: regression Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: cbkbbejeap mailinator.com 20:01:57 PDT --- This crashes the compiler: void foo(alias dg)() { dg(); } alias foo!( (int[] a...){} ) bar; -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 19 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6351 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug yahoo.com.au Another test case, involving a variable instead of a delegate literal: void bug6351(alias dg)() { dg(); } void delegate(int[] a...) deleg6351 = (int[] a...){}; alias bug6351!(deleg6351) baz6531; The problem is in expression.c, functionParameters(). The parameter 'fd' is NULL, but the function calls fd->isSafe(). In fact, 'fd' will be null for any kind of call involving a variable -- TOKvar, TOKdotvar, TOKindex, TOKstar, TOKcall, TOKdotti. For the delegate literal case, we can determine 'fd' in expression.c 7618. This will allow safe inference for delegate literals as parameters. For the variable case, the function type should be used instead of fd. Lcheckargs: assert(tf->ty == Tfunction); + if (!f && e1->op == TOKfunction) + { + f = ((FuncExp *)e1)->fd; + } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 24 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6351 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |robert octarineparrot.com *** Issue 6341 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 24 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6351 https://github.com/D-Programming-Language/dmd/pull/330 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 24 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6351 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla digitalmars.com Resolution| |FIXED 13:40:15 PDT --- https://github.com/D-Programming-Language/dmd/commit/b9ee455e4e8c129b429d8e22fd4f6d15885274fb -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 24 2011