digitalmars.D.bugs - [Issue 378] New: Assertion failure: '0' on line 216 in file 'init.c'
- d-bugmail puremagic.com (21/21) Sep 27 2006 http://d.puremagic.com/issues/show_bug.cgi?id=378
- Thomas Kuehne (12/20) Sep 29 2006 -----BEGIN PGP SIGNED MESSAGE-----
- d-bugmail puremagic.com (21/21) Oct 16 2006 http://d.puremagic.com/issues/show_bug.cgi?id=378
- d-bugmail puremagic.com (8/8) Oct 16 2006 http://d.puremagic.com/issues/show_bug.cgi?id=378
- d-bugmail puremagic.com (11/11) Oct 16 2006 http://d.puremagic.com/issues/show_bug.cgi?id=378
- d-bugmail puremagic.com (8/8) Oct 24 2006 http://d.puremagic.com/issues/show_bug.cgi?id=378
- d-bugmail puremagic.com (9/9) Nov 25 2006 http://d.puremagic.com/issues/show_bug.cgi?id=378
http://d.puremagic.com/issues/show_bug.cgi?id=378 Summary: Assertion failure: '0' on line 216 in file 'init.c' Product: D Version: 0.167 Platform: PC OS/Version: Windows Status: NEW Keywords: ice-on-valid-code Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: h3r3tic mat.uni.torun.pl struct Ranged(T){ T value, min, max, range; } typedef Ranged!(float) Degree = {0f, 0f, 360f, 360f}; void main() { Degree a; } --
Sep 27 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d-bugmail puremagic.com schrieb am 2006-09-27:http://d.puremagic.com/issues/show_bug.cgi?id=378struct Ranged(T){ T value, min, max, range; } typedef Ranged!(float) Degree = {0f, 0f, 360f, 360f}; void main() { Degree a; }Added to DStress as http://dstress.kuehne.cn/run/t/typedef_20_A.d http://dstress.kuehne.cn/run/t/typedef_20_B.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFFHMd8LK5blCcjpWoRAoQ/AJ9Gv/sORwzEnqpR2YiKjmxrigh/YQCfVSeD BQVrBzlnFXjwU41CBz1QUB0= =nbYK -----END PGP SIGNATURE-----
Sep 29 2006
http://d.puremagic.com/issues/show_bug.cgi?id=378 Adding 'static' before Degree a eliminates the error. A reduced test case that shows the same behavior: struct Ranged { float value, min, max, range; } void main() { Ranged a = {0f, 0f, 360f, 360f}; } Changing the line in main to "static Ranged ..." also removes the error. Is the original test case actually valid code? Struct initializers, by spec, are only allowed for static instances. The syntax for default initialization for structs is like this: struct X { int a; int b; int c; int d = 7; } I'm not sure that it's possible to give struct's new default initializations when typedef'ing them like this. Walter? Language lawyer? For reference, the typedef part of the spec is fairly anemic and only gives this one example: typedef int myint = 7; myint m; // initialized to 7 --
Oct 16 2006
http://d.puremagic.com/issues/show_bug.cgi?id=378 With dmd 167 it reported this: 378-a.d(8): variable foo.main.a is not a static and cannot have static initializer If I had to guess, I'd say the problem is related to the stack variable initialization changes in 168. --
Oct 16 2006
http://d.puremagic.com/issues/show_bug.cgi?id=378 h3r3tic mat.uni.torun.pl changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ice-on-valid-code |ice-on-invalid-code You're probably right... Too bad, as default initialization for non-static struct instances or struct ctors would be very handy. Sorry for the misinformation. I guess I'll let the bug stay because of the assertion... --
Oct 16 2006
http://d.puremagic.com/issues/show_bug.cgi?id=378 braddr puremagic.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wbaxter gmail.com *** Bug 452 has been marked as a duplicate of this bug. *** --
Oct 24 2006
http://d.puremagic.com/issues/show_bug.cgi?id=378 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed DMD 0.175 --
Nov 25 2006