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

     1  /* PR target/19005 */
     2  extern void abort (void);
     3  
     4  int v, s;
     5  
     6  void
     7  bar (int a, int b)
     8  {
     9    unsigned char x = v;
    10  
    11    if (!s)
    12      {
    13        if (a != x || b != (unsigned char) (x + 1))
    14          abort ();
    15      }
    16    else if (a != (unsigned char) (x + 1) || b != x)
    17      abort ();
    18    s ^= 1;
    19  }
    20  
    21  int
    22  foo (int x)
    23  {
    24    unsigned char a = x, b = x + 1;
    25  
    26    bar (a, b);
    27    a ^= b; b ^= a; a ^= b;
    28    bar (a, b);
    29    return 0;
    30  }
    31  
    32  int
    33  main (void)
    34  {
    35    for (v = -10; v < 266; v++)
    36      foo (v);
    37    return 0;
    38  }