[DMD] Loop index incorrectly optimised out for -release -O
teodor.dutu at gmail.com
Sat Oct 9 21:09:19 UTC 2021
I discovered a bug in DMD whereby, during optimisation, the loop
index variable is removed, despite being used afterwards. I
reproduced the bug in [this
Using run.dlang.io, I tried to find a regression, but all
supported DMD versions (2.060 and newer) are printing the same
incorrect output (`Exception: i = 0; n = 1`). My experiment can
be found [here](https://run.dlang.io/is/uYfTzl). This seems to be
a backend issue, as both LDC and LDC-beta are working fine.
However, when analysing the CI outputs from [the
PR](https://github.com/dlang/dmd/pull/13116) which made me come
across this bug, I noticed that all 3 of DMD, LDC and GDC are
failing the same test, which I've also been able to reproduce
The failure of this test is caused by the issue I mentioned above
and the code with which I reproduced the bug is based on it.
I am unsure what to make of this, since the logs seem to
contradict my experiment with LDC. Has anyone else encountered
this? How did you proceed?
More information about the Digitalmars-d