modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr48571-1.c (about)

     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  }