1#define S (sizeof (int)) 2 3unsigned int c[624]; 4void __attribute__((noinline)) 5bar (void) 6{ 7 unsigned int i; 8 /* Obfuscated c[i] = c[i-1] * 2. */ 9 for (i = 1; i < 624; ++i) 10 *(unsigned int *)((void *)c + (__SIZE_TYPE__)i * S) 11 = 2 * *(unsigned int *)((void *)c + ((__SIZE_TYPE__)i + 12 ((__SIZE_TYPE__)-S)/S) * S); 13} 14extern void abort (void); 15int 16main() 17{ 18 unsigned int i, j; 19 for (i = 0; i < 624; ++i) 20 c[i] = 1; 21 bar(); 22 j = 1; 23 for (i = 0; i < 624; ++i) 24 { 25 if (c[i] != j) 26 abort (); 27 j = j * 2; 28 } 29 return 0; 30} 31