Bug 7880 – [CTFE] cast from void array allowed with different results than at runtime

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-04-09T14:19:00Z
Last change time
2012-04-30T15:28:29Z
Keywords
accepts-invalid, CTFE, pull
Assigned to
nobody
Creator
timon.gehr

Comments

Comment #0 by timon.gehr — 2012-04-09T14:19:21Z
DMD 2.058/2.059head int bar(){ int[] y = new int[2]; y[0]=2000000; void[] x = y; return (cast(byte[])x)[1]; } static assert(!is(typeof({enum _ = (assert(!bar()),1);}))); // fail The static assertion should pass.
Comment #1 by clugdbug — 2012-04-11T11:20:46Z
This bug applies to casting any slice of another array, not just a void[] slice. https://github.com/D-Programming-Language/dmd/pull/873
Comment #2 by github-bugzilla — 2012-04-14T12:05:00Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/ca6e0d36c41ed4b725e76a0b4fc6fdb28f08cf56 Fix issue 7880 [CTFE] cast from void array allowed with different results than at runtime Actually applies to casts of any kind of slice, not just void[]. https://github.com/D-Programming-Language/dmd/commit/e919e37f26f9b9ea042a1d317cd1e392c4e432f3 Merge pull request #873 from donc/ctfe7880arraycast Fix issue 7880 [CTFE] cast from void array allowed with different result...