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

     1  __extension__ typedef __PTRDIFF_TYPE__ ptr_t;
     2  ptr_t *wm_TR;
     3  ptr_t *wm_HB;
     4  ptr_t *wm_SPB;
     5  
     6  ptr_t mem[100];
     7  
     8  f (mr_TR, mr_SPB, mr_HB, reg1, reg2)
     9       ptr_t *mr_TR;
    10       ptr_t *mr_SPB;
    11       ptr_t *mr_HB;
    12       ptr_t *reg1;
    13       ptr_t *reg2;
    14  {
    15    ptr_t *x = mr_TR;
    16  
    17    for (;;)
    18      {
    19        if (reg1 < reg2)
    20  	goto out;
    21        if ((ptr_t *) *reg1 < mr_HB && (ptr_t *) *reg1 >= mr_SPB)
    22  	*--mr_TR = *reg1;
    23        reg1--;
    24      }
    25   out:
    26  
    27    if (x != mr_TR)
    28      abort ();
    29  }
    30  
    31  main ()
    32  {
    33    mem[99] = (ptr_t) mem;
    34    f (mem + 100, mem + 6, mem + 8, mem + 99, mem + 99);
    35    exit (0);
    36  }