Bug 10626 – ICE with vector operation

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-07-12T18:44:00Z
Last change time
2013-08-29T12:43:51Z
Keywords
ice, pull
Assigned to
yebblies
Creator
nilsbossung

Comments

Comment #0 by nilsbossung — 2013-07-12T18:44:07Z
Fails with v2.064-devel-a0ba3b2. Works with v2.063.2. --- cat > test.d << code void main() { double[2] v; bool b; double[2] result = (b ? 1 : -1) * v[]; } code dmd -c -o- test.d --- dmd: arrayop.c:525: virtual void BinExp::buildArrayIdent(OutBuffer*, Expressions*): Assertion `0' failed. Aborted (core dumped) ---
Comment #1 by nilsbossung — 2013-07-12T19:31:20Z
Looks like the ternary operator is innocent. Another trigger: --- cat > test2.d << code void main() { double[2] v, x; double[2] r = v[] * x[0]; } code dmd -c -o- test2.d --- dmd: arrayop.c:525: virtual void BinExp::buildArrayIdent(OutBuffer*, Expressions*): Assertion `0' failed. Aborted (core dumped) ---
Comment #2 by yebblies — 2013-07-13T07:54:52Z
Comment #3 by nilsbossung — 2013-07-20T11:03:21Z
*** Issue 10681 has been marked as a duplicate of this issue. ***
Comment #4 by github-bugzilla — 2013-08-28T14:46:09Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/0458fe4dcb7f1beb92903ea8b4f6eb1a0e853430 Fix Issue 10626 - ICE with vector operation Fix regression by forwarding buildArrayIdent and buildArrayLoop to the base implementation for all other derived expressions. Add test cases to improve coverage. https://github.com/D-Programming-Language/dmd/commit/46e495bc953356efbd48bdea75b3f7d0d779d962 Merge pull request #2345 from yebblies/issue10626 Fix Issue 10626 - ICE with vector operation
Comment #5 by henning — 2013-08-29T12:43:51Z
*** Issue 10918 has been marked as a duplicate of this issue. ***