digitalmars.D.bugs - [Issue 5090] New: Assertion `sz <= vsz' failed with struct literal initializing zero length array
- d-bugmail puremagic.com (26/26) Oct 20 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5090
- d-bugmail puremagic.com (12/12) Oct 20 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5090
- d-bugmail puremagic.com (17/17) Nov 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5090
- d-bugmail puremagic.com (6/6) Nov 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5090
- d-bugmail puremagic.com (11/11) Dec 09 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5090
- d-bugmail puremagic.com (13/13) Dec 09 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5090
- d-bugmail puremagic.com (11/11) Dec 27 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5090
http://d.puremagic.com/issues/show_bug.cgi?id=5090
Summary: Assertion `sz <= vsz' failed with struct literal
initializing zero length array
Product: D
Version: D1 & D2
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: ibuclaw ubuntu.com
Test cases:
struct A { int[0] b; }
A a = A(0); // Fails, compiler aborts
A b = {b:0}; // OK, but perhaps shouldn't be.
A c = A([]); // OK
A d = {b:[]}; // OK
Although the compiler shouldn't issue an assert, a zero length array
should be enforced to have a 0 length initializer.
Regards
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 20 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5090
bearophile_hugs eml.cc changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bearophile_hugs eml.cc
This needs to be an error, because that 0 value has nowhere to be stored into:
struct A { int[0] b; }
A b = {b : 0};
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 20 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5090
simon <s.d.hammett googlemail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
AssignedTo|nobody puremagic.com |s.d.hammett googlemail.com
---
Created an attachment (id=813)
PATCH against rev 755: fix crash in first case
Fixed:
A a = A(0); // Fails, compiler aborts
by issuing error msg.
I'll dig a bit more into fixing the second case, that should be an error as
way.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 15 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5090 Just under the "duplicate union" error is where to look iirc. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 15 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5090 Created an attachment (id=844) Patch for 5090 Reassigned to Walter. Attaching patch that turns assert into an error, but enforces that this corner case only happens for zero-length'd static arrays. Make any improvements you may wish to add/remove, as I generally suck at coming up with good, concise error messages. :~) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 09 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5090
Just to make note, these forms of initialisation are still OK for zero-length
static arrays:
struct A { int[0] b; }
A a = A(); // OK
A b = {}; // OK
A c = A([]); // OK
A d = {b:[]}; // OK
Regards
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 09 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5090
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
15:23:49 PST ---
http://www.dsource.org/projects/dmd/changeset/823
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 27 2010









d-bugmail puremagic.com 