[Issue 287] DMD optimization bug arround dynamic array length
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Aug 19 02:10:53 PDT 2006
http://d.puremagic.com/issues/show_bug.cgi?id=287
deewiant at gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |deewiant at gmail.com
Keywords| |wrong-code
Version|0.163 |0.164
------- Comment #3 from deewiant at gmail.com 2006-08-19 04:10 -------
My reduced version, with some inline comments:
import std.stdio : writefln;
void main() {
int lng, lngnew;
int[] arr = new int[1];
for (int i = 10; i--;) {
// removing one of the pairs of assignments to lng/lngnew
// fixes the bug
lngnew = lng + arr.length;
lng = lngnew;
lngnew = lng + arr.length;
// moving this writefln to anywhere except between either pair
// of assignments to lng/lngnew fixes the bug
writefln("%2d %2d %2d", lng, lngnew, arr.length);
// changing either "lng = lngnew" to the equivalent statement
// "lng += arr.length" fixes the bug
lng = lngnew;
}
}
--
More information about the Digitalmars-d-bugs
mailing list