crasher: --- void main() { enum v = __vector(float[4]).init; const(float)[] a = v[]; } --- > dmd: dmd/backend/cod2.d:4261: Assertion `cast(int)(*e).Eoper == 147 || cast(int)(*e).Eoper == 146' failed. Does not happen if v storage is set to `const` instead of `enum`
@WalterBright created dlang/dmd pull request #12043 "fix Issue 19788 - compiler crash on slicing a enum typed as vector" fixing this issue: - fix Issue 19788 - compiler crash on slicing a enum typed as vector https://github.com/dlang/dmd/pull/12043
dlang/dmd pull request #12043 "fix Issue 19788 - compiler crash on slicing a enum typed as vector" was merged into master: - 8f475d87e726310c9491f6938f132cbc013f8297 by Walter Bright: fix Issue 19788 - compiler crash on slicing a enum typed as vector https://github.com/dlang/dmd/pull/12043
This is now regarded as an error, as it is slicing an rvalue.
Use .array property instead of slicing.
dlang/dmd pull request #14580 "cannot slice xmm rvalue" was merged into master: - 5a10d1eb723383881ce4f5df5129134028febde2 by Walter Bright: Fixes incorrect fix issue 19788 about slicing xmm value Fixes incorrect fix for https://issues.dlang.org/show_bug.cgi?id=19788 https://github.com/dlang/dmd/pull/14580