D - [BUG] uint division is performed as int division
- Robert (22/22) Jan 14 2004 With -O option, uint division is performed as int division.
With -O option, uint division is performed as int division. int main() { uint f(uint n) { return n % 10; } printf("%u\n", uint.max); printf("%u\n", f(uint.max)); printf("%d\n", uint.max); printf("%d\n", f(uint.max)); return 0; } Without -O: 4294967295 5 -1 5 With -O: 4294967295 4294967295 -1 -1 If the division is performed directly (i.e. uint.max % 10), it works both with and without -O option. This is a bug of inline expansion, isn't it?
Jan 14 2004