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

     1  static int ap(int i);
     2  static void testit(void){
     3    int ir[4] = {0,1,2,3};
     4    int ix,n,m;
     5    n=1; m=3;
     6    for (ix=1;ix<=4;ix++) {
     7      if (n == 1) m = 4;
     8      else        m = n-1;
     9      ap(ir[n-1]);
    10      n = m;
    11    }
    12  }
    13  
    14  static int t = 0;
    15  static int a[4];
    16  
    17  static int ap(int i){
    18    if (t > 3)
    19      abort();
    20    a[t++] = i;
    21    return 1;
    22  }
    23  
    24  int main(void)
    25  {
    26    testit();
    27    if (a[0] != 0)
    28      abort();
    29    if (a[1] != 3)
    30      abort();
    31    if (a[2] != 2)
    32      abort();
    33    if (a[3] != 1)
    34      abort();
    35    exit(0);
    36  }