modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20011114-4.c (about)

     1  static inline int foo (long x)
     2  {
     3    register int a = 0;
     4    register unsigned b;
     5  
     6    do
     7      {
     8        b = (x & 0x7f);
     9        x = (x >> 7) | ~(-1L >> 7);
    10        a += 1;
    11      }
    12    while ((x != 0 || (b & 0x40) != 0) && (x != -1 || (b & 0x40) == 0));
    13    return a;
    14  }
    15  
    16  static inline int bar (unsigned long x)
    17  {
    18    register int a = 0;
    19    register unsigned b;
    20  
    21    do
    22      {
    23        b = (x & 0x7f);
    24        x >>= 7;
    25        a++;
    26      }
    27    while (x != 0);
    28    return a;
    29  }
    30  
    31  int
    32  baz (unsigned long x, int y)
    33  {
    34    if (y)
    35      return foo ((long) x);
    36    else
    37      return bar (x);
    38  }