Sorry, i have no sample code.
I get this error while compiling with the switch -O.
dmd test.d -release (OK)
dmd test.d -inline (OK)
dmd test.d -O
Internal error: ..\ztc\cod2.c 411
Comment #1 by keystuffs — 2007-11-13T07:12:53Z
Here is the code:
class Ap {
private uint value;
private ulong size;
public void update(ubyte[] input, int len) {
uint tmp = value;
for (int i = 0; i < len; i++) {
tmp ^= (((size + i) & 1) == 0) ?
((tmp << 7) ^ input[i] ^ (tmp >> 3)) :
(~((tmp << 11) ^ input[i] ^ (tmp >> 5)));
}
value = tmp;
}
}
int main(char[][] params) {
return 0;
}
If I replace my code:
tmp ^= (((size + i) & 1) == 0) ?
((tmp << 7) ^ input[i] ^ (tmp >> 3)) :
(~((tmp << 11) ^ input[i] ^ (tmp >> 5)));
by this code:
tmp ^= ((size & 1) == 0) ?
((tmp << 7) ^ input[i] ^ (tmp >> 3)) :
(~((tmp << 11) ^ input[i] ^ (tmp >> 5)));
size++;
dmd doesn't crash anymore.