digitalmars.D.bugs - [Issue 3326] New: $ in delegate literal causes Access Violation
- d-bugmail puremagic.com (28/28) Sep 17 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3326
- d-bugmail puremagic.com (16/16) Jul 23 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3326
- d-bugmail puremagic.com (28/28) Aug 06 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3326
- d-bugmail puremagic.com (12/12) Aug 08 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3326
- d-bugmail puremagic.com (13/13) Jul 01 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3326
- d-bugmail puremagic.com (9/9) Jul 01 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3326
http://d.puremagic.com/issues/show_bug.cgi?id=3326
Summary: $ in delegate literal causes Access Violation
Product: D
Version: 2.032
Platform: Other
OS/Version: Windows
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: k.hanazuki gmail.com
PDT ---
Windows DMD 2.032
Evaluating $ in a delegate literal in an array indexing or slicing
throws access violation Error.
----
void main() {
int[] a = [1];
auto x = a[{ auto n = $; return 0; }()];
// object.Error: Access Violation
auto y = a[{ auto n = $; return 0; }() .. $];
// object.Error: Access Violation
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 17 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3326
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |clugdbug yahoo.com.au
Version|2.032 |D2
Summary|$ in delegate literal |Regression(2.010): $ in
|causes Access Violation |delegate literal causes
| |Access Violation
Severity|normal |regression
This worked in 2.000 and all versions of D1, Failed with access violation in
2.012. Bumping up to regression.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 23 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3326
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
Version|D2 |D1 & D2
Summary|Regression(2.010): $ in |$ in delegate literal
|delegate literal causes |causes Access Violation
|Access Violation |
Severity|regression |major
This isn't a regression, it never worked properly (on D1, it doesn't segfault,
but the generated code is wrong).
It's happening because __dollar isn't a real variable in the parent scope. I
think to fix this properly, either the implementation of __dollar would need to
change, OR the delegate literal would need to be inlined; but this case is so
obscure, it doesn't matter much.
To turn this from wrong-code into a rather obscure rejects-valid:
declaration.c, VarDeclaration::checkNestedReference(), line 1441 (D2 svn 599):
fdv->closureVars.push(this);
L2: ;
+ // __dollar creates problems because it isn't a real variable
+ if (ident == Id::dollar)
+ ::error(loc, "cannnot use $ inside a function literal
(Bugzilla 3326)");
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 06 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3326
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
22:30:46 PDT ---
http://www.dsource.org/projects/dmd/changeset/608
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 08 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3326
yebblies <yebblies gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|patch, wrong-code |rejects-valid
Status|RESOLVED |REOPENED
CC| |yebblies gmail.com
Resolution|FIXED |
Reopening as this hasn't been fixed, just turned into a rejects-valid
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 01 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3326
yebblies <yebblies gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P2 |P4
Severity|major |minor
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 01 2011









d-bugmail puremagic.com 