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

     1  /* PR tree-optimization/81588 */
     2  
     3  __attribute__((noinline, noclone)) int
     4  bar (int x)
     5  {
     6    __asm volatile ("" : : "g" (x) : "memory");
     7  }
     8  
     9  __attribute__((noinline, noclone)) int
    10  foo (unsigned x, long long y)
    11  {
    12    if (y < 0)
    13      return 0;
    14    if (y < (long long) (4 * x))
    15      {
    16        bar (y);
    17        return 1;
    18      }
    19    return 0;
    20  }     
    21  
    22  int
    23  main ()
    24  {
    25    volatile unsigned x = 10;
    26    volatile long long y = -10000;
    27    if (foo (x, y) != 0)
    28      __builtin_abort ();
    29    y = -1;
    30    if (foo (x, y) != 0)
    31      __builtin_abort ();
    32    y = 0;
    33    if (foo (x, y) != 1)
    34      __builtin_abort ();
    35    y = 39;
    36    if (foo (x, y) != 1)
    37      __builtin_abort ();
    38    y = 40;
    39    if (foo (x, y) != 0)
    40      __builtin_abort ();
    41    y = 10000;
    42    if (foo (x, y) != 0)
    43      __builtin_abort ();
    44    return 0;
    45  }