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

     1  #include <limits.h>
     2  
     3  void * a[255];
     4  
     5  f (m)
     6  {
     7    int i;
     8    int sh = 0x100;
     9    i = m;
    10    do
    11      {
    12        a[sh >>= 1] = ((unsigned)i << 3)  + (char*)a;
    13        i += 4;
    14      }
    15    while (i < INT_MAX/2 + 1 + 4 * 4);
    16  }
    17  
    18  main ()
    19  {
    20    a[0x10] = 0;
    21    a[0x08] = 0;
    22    f (INT_MAX/2 + INT_MAX/4 + 2);
    23    if (a[0x10] || a[0x08])
    24      abort ();
    25    a[0x10] = 0;
    26    a[0x08] = 0;
    27    f (INT_MAX/2 + 1);
    28    if (! a[0x10] || a[0x08])
    29      abort ();
    30    exit (0);
    31  }