Bug 10918 – ICE(arrayop.c:526) involving array ops on real[]

Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-08-28T20:27:00Z
Last change time
2013-08-29T13:15:57Z
Keywords
ice, pull
Assigned to
nobody
Creator
hsteoh

Comments

Comment #0 by hsteoh — 2013-08-28T20:27:51Z
Code (reduced courtesy of dustmite): -------------vec.d-------------- static this() { (real[][] args...) { real[] result; result[] = args[0][] / args[1][0]; } ; } -------------------------------- Compile line: dmd -m64 -O -inline -unittest -c -ofvec.o vec.d Compiler output: -------------------------------- dmd: arrayop.c:526: virtual void BinExp::buildArrayIdent(OutBuffer*, Expressions*): Assertion `0' failed. Aborted -------------------------------- Tested on git HEAD (0362ae81d1cba6d2c4a135e40c40ddaf5617601f). This code used to work in earlier versions of DMD (I didn't check exactly when it broke, but I'm pretty sure 2.063.2 worked).
Comment #1 by hsteoh — 2013-08-28T20:45:45Z
git bisect revealed the offending commit: c5297b8ba310029438dc332152ec173a7387fead
Comment #2 by hsteoh — 2013-08-28T20:55:07Z
Comment #3 by henning — 2013-08-29T12:21:52Z
Comment #4 by henning — 2013-08-29T12:43:51Z
*** This issue has been marked as a duplicate of issue 10626 ***
Comment #5 by hsteoh — 2013-08-29T13:15:57Z
Confirmed fixed in git HEAD (46e495b), thanks!