digitalmars.D.bugs - [Issue 1984] New: Assertion in dmd
- d-bugmail puremagic.com (32/32) Apr 10 2008 http://d.puremagic.com/issues/show_bug.cgi?id=1984
- d-bugmail puremagic.com (12/12) Nov 20 2008 http://d.puremagic.com/issues/show_bug.cgi?id=1984
- d-bugmail puremagic.com (10/10) May 04 2009 http://d.puremagic.com/issues/show_bug.cgi?id=1984
- d-bugmail puremagic.com (43/43) May 13 2009 http://d.puremagic.com/issues/show_bug.cgi?id=1984
- d-bugmail puremagic.com (11/11) Jul 09 2009 http://d.puremagic.com/issues/show_bug.cgi?id=1984
http://d.puremagic.com/issues/show_bug.cgi?id=1984 Summary: Assertion in dmd Product: D Version: 2.012 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: bartosz relisoft.com Assertion failure: 'e1->type' on line 1198 in file 'constfold.c' when compiling this test: import std.string; import std.stdio; string genClass (invariant bool [string] set) { string result; foreach (x; set.keys) { result ~= x ~ " "; } return result; } void main () { invariant bool [string] map = [ "foo":true, "bar":true ]; string res = mixin (genClass (map)); writefln (res); } --
Apr 10 2008
http://d.puremagic.com/issues/show_bug.cgi?id=1984 smjg iname.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg iname.com Keywords| |ice-on-valid-code Summary|Assertion in dmd |Assertion failure: 'e1- | |>type' on line 1198 in file | |'constfold.c' An even more serious problem: the AA initialisation throws an AV at runtime. --
Nov 20 2008
http://d.puremagic.com/issues/show_bug.cgi?id=1984 Reduced test case shows it's a problem with CTFE and AA literals. immutable bool [int] map = [ 4:true, 5:true ]; int foo () { foreach (x; map.keys) {} return 3; } static int x = foo(); --
May 04 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1984 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |clugdbug yahoo.com.au Version|2.012 |1.037 Here are two more extreme versions of the same bug. They segfault even on D1. // TEST CASE 1: // Segfault D1 and D2. int[] map = ([ 4:true, 5:true ]).keys; // TEST CASE 2: bool[] foo2 = ([ 4:true, 5:true ]).values; PATCH against DMD2.029 PATCH (interpret.c) This is crashing because interpret_aakeys() and interpret_aavalues() aren't setting the type of the array literal which they are creating. This patch fixes both the segfaults and the original bug. Note, however, that the original bug report generates an error, because AA literals cannot be used at runtime. With this patch, the CTFE part of it works fine. --- interpret.c (revision 26) +++ interpret.c (working copy) -2291,6 +2295,8 return NULL; AssocArrayLiteralExp *aae = (AssocArrayLiteralExp *)earg; Expression *e = new ArrayLiteralExp(aae->loc, aae->keys); + Type *elemType = ((TypeAArray *)aae->type)->index; + e->type = new TypeSArray(elemType, ArrayLength(elemType, e)); return e; } -2307,6 +2313,8 return NULL; AssocArrayLiteralExp *aae = (AssocArrayLiteralExp *)earg; Expression *e = new ArrayLiteralExp(aae->loc, aae->values); + Type *elemType = ((TypeAArray *)aae->type)->next; + e->type = new TypeSArray(elemType, ArrayLength(elemType, e)); //printf("result is %s\n", e->toChars()); return e; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 13 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1984 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED 02:46:22 PDT --- Fixed dmd 1.046 and 2.031 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 09 2009