Bug 11223 – inline ice with tuple assignment and if/else

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P4
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-10-10T21:23:00Z
Last change time
2013-10-12T12:42:12Z
Keywords
ice, pull
Assigned to
nobody
Creator
code

Comments

Comment #0 by code — 2013-10-10T21:23:13Z
cat > bug.d << CODE struct Tuple(T...) { T values; void opAssign(Tuple rhs) { if (0) values = rhs.values; else assert(0); } } void bug() { Tuple!string tmp; tmp = Tuple!string(); } CODE dmd -c -inline bug ---- glue.c:1265: virtual unsigned int Type::totym(): Assertion `0' failed. ---- I reduced that test case from the vibe.d source code. The ICE is triggered by the opAssign in std.typecons.Tuple so this might affects a lot of code and fixing the regression is very important.
Comment #1 by k.hara.pg — 2013-10-10T23:00:21Z
Comment #2 by github-bugzilla — 2013-10-11T11:40:14Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/250a8734370d223f1757c9796e284cc45a82e6ec fix Issue 11223 - inline ice with tuple assignment and if/else Superseded fix of 36a44cbcea9fbb18b221f77e00f2dca77f21bc88 https://github.com/D-Programming-Language/dmd/commit/9c136af1c21423a252fcf019f3aca112028667f8 Merge pull request #2653 from 9rnsr/fix11223 [REG2.064a] Issue 11223 - inline ice with tuple assignment and if/else
Comment #3 by code — 2013-10-12T12:42:12Z
Thanks a lot for the quick fix.