October 10, 2011 [Issue 6792] New: [CTFE] ICE with pointer cast of indexed array | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=6792 Summary: [CTFE] ICE with pointer cast of indexed array Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: youxkei@gmail.com CC: clugdbug@yahoo.com.au Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug@yahoo.com.au Summary|[CTFE] "CTFE internal |[CTFE] ICE with pointer |error" occurs |cast of indexed array --- Comment #0 from Hisayuki Mima <youxkei@gmail.com> 2011-10-08 10:24:56 PDT --- struct S{ int i; } static assert({ { void* p; p = [S(1)].ptr; S s = *(cast(S*)p);// OK assert(s.i == 1); } { void*[] ary; ary ~= [S(2)].ptr; S s = *(cast(S*)ary[0]);// Error: CTFE internal error assigning struct assert(s.i == 2); } { void*[string] aa; aa["key"] = [S(3)].ptr; S s = *(cast(S*)aa["key"]);// Error: CTFE internal error assigning struct assert(s.i == 3); } return true; }()); The latest dmd built from github cannot compile the above code. --- Comment #1 from Don <clugdbug@yahoo.com.au> 2011-10-10 01:15:26 PDT --- Another case, where it's an lvalue instead of an rvalue: { void*[7] ary; ary[6]= [S(2)].ptr; *(cast(S*)ary[6]) = S(4); //ICE(interpret.c 2965) } The root cause is that type painting of pointers hasn't been considered properly in CTFE. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
November 02, 2011 [Issue 6792] [CTFE] ICE with pointer cast of indexed array | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don | http://d.puremagic.com/issues/show_bug.cgi?id=6792 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla@digitalmars.com Resolution| |FIXED --- Comment #2 from Walter Bright <bugzilla@digitalmars.com> 2011-11-02 13:06:59 PDT --- https://github.com/D-Programming-Language/dmd/commit/3055cc6a8b36a2e00c270b0e48e1d1bd2c931f37 https://github.com/D-Programming-Language/dmd/commit/72e750209b370b66157f320d3517c5816a3951d7 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation