This bug was painstakenly reduced from 176.gcc, _manually_. The C front-end generates incorrect code for the increment here: #include <stdio.h> int main() { int Array[10]; void *Pointer = &Array[0]; unsigned i; for (i = 0; i < 10; ++i) { *((int*)Pointer)++ = 1234; printf("0x%d\n", (int)Pointer-(int)&Array[0]); } } This has been checked in as test/Programs/SingleSource/Regression/C/2003-10-13-PointerIncrementTest.c
This is now fixed.
Oh btw, with this fix, 176.gcc now works with the C backend!