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

     1  /* PR middle-end/45262 */
     2  
     3  /* { dg-require-effective-target int32plus } */
     4  
     5  extern void abort (void);
     6  
     7  int
     8  foo (unsigned int x)
     9  {
    10    return ((int) x < 0) || ((int) (-x) < 0);
    11  }
    12  
    13  int
    14  bar (unsigned int x)
    15  {
    16    return x >> 31 || (-x) >> 31;
    17  }
    18  
    19  int
    20  main (void)
    21  {
    22    if (foo (1) != 1)
    23      abort ();
    24    if (foo (0) != 0)
    25      abort ();
    26    if (foo (-1) != 1)
    27      abort ();
    28    if (bar (1) != 1)
    29      abort ();
    30    if (bar (0) != 0)
    31      abort ();
    32    if (bar (-1) != 1)
    33      abort ();
    34    return 0;
    35  }