#define S (sizeof (int)) | |
unsigned int c[624]; | |
void __attribute__((noinline)) | |
bar (void) | |
{ | |
unsigned int i; | |
/* Obfuscated c[i] = c[i-1] * 2. */ | |
for (i = 1; i < 624; ++i) | |
*(unsigned int *)((void *)c + (__SIZE_TYPE__)i * S) | |
= 2 * *(unsigned int *)((void *)c + ((__SIZE_TYPE__)i + | |
((__SIZE_TYPE__)-S)/S) * S); | |
} | |
extern void abort (void); | |
int | |
main() | |
{ | |
unsigned int i, j; | |
for (i = 0; i < 624; ++i) | |
c[i] = 1; | |
bar(); | |
j = 1; | |
for (i = 0; i < 624; ++i) | |
{ | |
if (c[i] != j) | |
abort (); | |
j = j * 2; | |
} | |
return 0; | |
} |