extern void exit (int); extern void abort (void); volatile int i; unsigned char *volatile cp; unsigned char d[32] = { 0 }; int main (void) { unsigned char c[32] = { 0 }; unsigned char *p = d + i; int j; for (j = 0; j < 30; j++) { int x = 0xff; int y = *++p; switch (j) { case 1: x ^= 2; break; case 2: x ^= 4; break; case 25: x ^= 1; break; default: break; } c[j] = y | x; cp = p; } if (c[0] != 0xff || c[1] != 0xfd || c[2] != 0xfb || c[3] != 0xff || c[4] != 0xff || c[25] != 0xfe || cp != d + 30) abort (); exit (0); }