This took a couple of hours to dustmite & manually reduce from the vdparser-benchmark in druntime: void foo() { cfloat v2; ulong v1; auto z = v2 + v1; } compile with dmd 2.075 with "-m64" yields: Internal error: ddmd\backend\cg87.c 3680 The same happens with substraction, but not with multiplication. This compiles with dmd 2.072 or with -m32.
Introduced in https://github.com/dlang/dmd/pull/6238
https://github.com/dlang/dmd/pull/7068
Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/3beb40529419c03b6343aa985119eb7546a7aef8 fix Issue 17677 - [REG 2.073.0] ICE when adding ulong to cfloat https://github.com/dlang/dmd/commit/ced8dd5753c1d431506192117e4b6ebf75e19d58 Merge pull request #7068 from WalterBright/fix17677 fix Issue 17677 - [REG 2.073.0] ICE when adding ulong to cfloat
Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/3beb40529419c03b6343aa985119eb7546a7aef8 fix Issue 17677 - [REG 2.073.0] ICE when adding ulong to cfloat https://github.com/dlang/dmd/commit/ced8dd5753c1d431506192117e4b6ebf75e19d58 Merge pull request #7068 from WalterBright/fix17677