digitalmars.D.bugs - [Bug 142] New: Assertion failure: '0' on line 610 in file 'template.c'
- d-bugmail puremagic.com (25/25) May 17 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=142
- d-bugmail puremagic.com (20/20) May 17 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=142
- d-bugmail puremagic.com (12/14) May 18 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=142
- Thomas Kuehne (15/27) May 19 2006 -----BEGIN PGP SIGNED MESSAGE-----
- d-bugmail puremagic.com (9/9) May 25 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=142
http://d.puremagic.com/bugzilla/show_bug.cgi?id=142 Summary: Assertion failure: '0' on line 610 in file 'template.c' Product: D Version: 0.157 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: lio lunesu.com // I don't know if the code is supposed to work, // but I'm trying to convert // #define A(x) x=2 template A(alias T) { void A(T) { T=2; } } void main() { int i; A(i); assert(i==2); } --
May 17 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=142 That definitely looks like a compiler bug. That said, I'm pretty sure that code shouldn't compile anyway. I think what you're trying to do is probably something like this: // translation of "#define A(x) x=2". // Note it can't be translated exactly because the macro doesn't // have parentheses around it, so code like "A(x) + 2" _will_ do // something different. // (i.e. this is actually the translation of "#define A(x) (x=2)") template A(T) { void A(out T x) { x=2; } } void main() { int i; A(i); assert(i==2); } --
May 17 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=142 smjg iname.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg iname.com Keywords| |ice-on-invalid-codeThat definitely looks like a compiler bug.An assertion failure is a bug by definition.That said, I'm pretty sure that code shouldn't compile anyway.It took me a moment to work it out. But indeed, it shouldn't compile, because the parameter T has no type. --
May 18 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d-bugmail puremagic.com schrieb am 2006-05-17:// I don't know if the code is supposed to work, // but I'm trying to convert // #define A(x) x=2 template A(alias T) { void A(T) { T=2; } } void main() { int i; A(i); assert(i==2); }Added to DStress as http://dstress.kuehne.cn/nocompile/b/bug_template_610_A.d http://dstress.kuehne.cn/nocompile/b/bug_template_610_B.d http://dstress.kuehne.cn/run/b/bug_template_610_C.d http://dstress.kuehne.cn/nocompile/b/bug_template_610_D.d http://dstress.kuehne.cn/nocompile/b/bug_template_610_E.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFEbcGt3w+/yD4P9tIRAltgAJ9eDNdj4UwVVLBBOS71y+P08DovOgCglJQ1 /bx90fnYGDBlXN+TlpuA+3s= =/kd+ -----END PGP SIGNATURE-----
May 19 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=142 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed 0.158 --
May 25 2006