digitalmars.D.bugs - [Issue 3306] New: bad function/delegate literal generated into header files
- d-bugmail puremagic.com (52/54) Sep 07 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3306
- d-bugmail puremagic.com (31/31) Sep 07 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3306
- d-bugmail puremagic.com (10/10) Feb 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3306
- d-bugmail puremagic.com (11/12) Feb 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3306
- d-bugmail puremagic.com (11/11) Mar 08 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3306
http://d.puremagic.com/issues/show_bug.cgi?id=3306 Summary: bad function/delegate literal generated into header files Product: D Version: 2.032 Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: r.sagitario gmx.de PDT --- While trying to compile tango with dmd 1.046, I ran into the a problem with the di-header generated for atomic.d. A reduced version that reproduces the bug in dmd 2.032 aswell is test.d: int foo(int function() fn) { return fn(); } int bar(T)() { return foo(function int (){ return 0; }); }dmd -c -H test.ddmd -c test.ditest.di(10): found 'function' when expecting '.' following 'int' test.di(10): found '(' when expecting identifier following 'int.' test.di(11): found '{' when expecting ';' following 'return statement' test.di(14): Declaration expected, not ')' test.di(16): unrecognized declaration This is caused by a wrong function literal being generated into the di-file: // D import file generated from 'test.d' int foo(int function() fn) { return fn(); } template bar(T) { int bar() { return foo(int function() { return 0; } ); } } Note the difference "foo(int function()..." and "foo(function int ()...". -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 07 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3306 Rainer Schuetze <r.sagitario gmx.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch, wrong-code PDT --- Here is the patch that fixes the problem, but I have no idea why it was implemented the way it was before. There might be other places that may need the original implementation. --- func.c (revision 196) +++ func.c (working copy) -2426,15 +2426,9 void FuncLiteralDeclaration::toCBuffer(OutBuffer *buf, HdrGenState *hgs) { - static Identifier *idfunc; - static Identifier *iddel; - - if (!idfunc) - idfunc = new Identifier("function", 0); - if (!iddel) - iddel = new Identifier("delegate", 0); - - type->toCBuffer(buf, ((tok == TOKdelegate) ? iddel : idfunc), hgs); + buf->writestring(kind()); + buf->writeByte(' '); + type->toCBuffer(buf, NULL, hgs); bodyToCBuffer(buf, hgs); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 07 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3306 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla digitalmars.com 20:34:08 PST --- Changelog 366 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3306 Kosmonaut <Kosmonaut tempinbox.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |Kosmonaut tempinbox.com ---Changelog 366http://www.dsource.org/projects/dmd/changeset/366 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3306 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED 22:19:39 PST --- Fixed dmd 1.057 and 2.041 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 08 2010