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