Bug 7785 – [CTFE] ICE when slicing pointer to variable

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-03-26T20:02:00Z
Last change time
2012-04-03T00:53:48Z
Keywords
CTFE, pull
Assigned to
nobody
Creator
code

Comments

Comment #0 by code — 2012-03-26T20:02:09Z
cat > bug.d << CODE bool foo() { int val; auto p = &val; auto ary = p[0 .. 1]; return true; } enum res = foo(); CODE dmd -c bug --------
Comment #1 by clugdbug — 2012-03-30T06:12:23Z
It also applies to indexing, and assignment to slices and indices: int val = 7; auto p = &val; auto ary = p[0 .. 1]; // ICE 1 auto x = p[0]; // ICE 2 p[0..1] = 1; // ICE 3 p[0] = 6; // ICE 4 This pull request turns ICE 1 and ICE 3 into sensible error messages; ICE 2 compiles without error (it only generates an error, if index is non-zero) ICE 4 generates a "not yet implemented" error. https://github.com/D-Programming-Language/dmd/pull/851
Comment #2 by github-bugzilla — 2012-03-30T21:31:30Z
Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/bd6b7d24dc856ac77500179055db521bf3a71825 Merge pull request #851 from donc/ctfe7785pointerToVar Fix issue 7785 [CTFE] ICE when slicing pointer to variable