digitalmars.D.bugs - [Issue 4940] New: ICE(symbol.c): Accessing tuple-typed field of struct literal with user-defined constructor
- d-bugmail puremagic.com (33/33) Sep 25 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4940
- d-bugmail puremagic.com (10/10) Aug 29 2011 http://d.puremagic.com/issues/show_bug.cgi?id=4940
- d-bugmail puremagic.com (27/27) Aug 29 2011 http://d.puremagic.com/issues/show_bug.cgi?id=4940
- d-bugmail puremagic.com (24/24) Jan 06 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4940
- d-bugmail puremagic.com (10/10) Jan 06 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4940
- d-bugmail puremagic.com (6/6) Jan 06 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4940
- d-bugmail puremagic.com (10/10) Jan 06 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4940
- d-bugmail puremagic.com (12/12) Jan 17 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4940
http://d.puremagic.com/issues/show_bug.cgi?id=4940 Summary: ICE(symbol.c): Accessing tuple-typed field of struct literal with user-defined constructor Product: D Version: D2 Platform: Other OS/Version: Windows Status: NEW Keywords: ice-on-valid-code Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: k.hanazuki gmail.com PDT --- DMD v2.049 on Windows crashes with the message: Internal error: ..\ztc\symbol.c 1043 This only occurs when accessing a tuple-typed field on a struct literal directly and using an user-defined constructor. ---- void main() { auto w = S(0).x; } template Tuple(T...) { alias T Tuple; } struct S { Tuple!(int, int) x; this(int) { } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 25 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4940 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dsimcha yahoo.com *** Issue 6530 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 29 2011
http://d.puremagic.com/issues/show_bug.cgi?id=4940 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |yebblies gmail.com Test case from 6530: struct S { int a, b, c; } struct HasPostblit { this(this) {} // Bug goes away without this. } auto toRandomAccessTuple(T...)(T input, HasPostblit hasPostblit) { return S(1, 2, 3); } void doStuff(T...)(T args) { HasPostblit hasPostblit; // Bug goes away without the .tupleof. auto foo = toRandomAccessTuple(args, hasPostblit).tupleof; } void main() { doStuff(1, 2, 3); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 29 2011
http://d.puremagic.com/issues/show_bug.cgi?id=4940 In the expression e1.tupleof, if e1 has some side effect, this problem occurs. The explanation of bug mechanism: 1. e1.tupleof is translated to e1.field0, e1.field1, ..., e1.fieldN (e1.tupleof.length == N). But if e1 has some side effect (e.g. e1 is function call), e1 is simply duplicated. funcall().tupleof -> (funcall().field0, funcall, field1, ..., funcall.fieldN) 2. Postblit call on function argument creates hidden temporary variable. toRandomAccessTuple(args, hasPostblit) -> toRandomAccessTuple(args, (auto __cpcttmp = hasPostblit, __cpcttmp)) follows: toRandomAccessTuple(args, hasPostblit).tupleof -> (toRandomAccessTuple(args, (auto __cpcttmp = hasPostblit, __cpcttmp)).a, toRandomAccessTuple(args, (auto __cpcttmp = hasPostblit, __cpcttmp)).b, toRandomAccessTuple(args, (auto __cpcttmp = hasPostblit, __cpcttmp)).c) Finally the repetation of __cpcttmp cause ICE in backend. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 06 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4940 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs eml.cc *** Issue 6729 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 06 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4940 *** Issue 7233 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 06 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4940 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch https://github.com/D-Programming-Language/dmd/pull/609 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 06 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4940 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla digitalmars.com Resolution| |FIXED 11:05:29 PST --- https://github.com/D-Programming-Language/dmd/commit/d6ede2edc28c94b6b3372eb1301cf300b0860eb6 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 17 2012