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

     1  void add_unwind_adjustsp (long);
     2  void abort (void);
     3  
     4  unsigned char bytes[5];
     5  
     6  int flag;
     7  
     8  void
     9  add_unwind_adjustsp (long offset)
    10  {
    11    int n;
    12    unsigned long o;
    13  
    14    o = (long) ((offset - 0x204) >> 2);
    15  
    16    n = 0;
    17    do
    18      {
    19  a:
    20        bytes[n] = o & 0x7f;
    21        o >>= 7;
    22        if (o)
    23          {
    24  	  bytes[n] |= 0x80;
    25  	  if (flag)
    26  	    goto a;
    27  	}
    28        n++;
    29      }
    30    while (o);
    31  }
    32  
    33  int main(void)
    34  {
    35    add_unwind_adjustsp (4132);
    36    if (bytes[0] != 0x88 || bytes[1] != 0x07)
    37      abort ();
    38    return 0;
    39  }