1 #define S (sizeof (int)) 2 3 unsigned int c[624]; 4 void __attribute__((noinline)) bar(void)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 } 14 extern void abort (void); 15 int main()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