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

     1  f1 (unsigned int x, unsigned int y)
     2  {
     3    if (x == 0)
     4      dummy ();
     5    x -= y;
     6    /* 0xfffffff2 < 0x80000000? */
     7    if (x < ~(~(unsigned int) 0 >> 1))
     8      abort ();
     9    return x;
    10  }
    11  
    12  f2 (unsigned long int x, unsigned long int y)
    13  {
    14    if (x == 0)
    15      dummy ();
    16    x -= y;
    17    /* 0xfffffff2 < 0x80000000? */
    18    if (x < ~(~(unsigned long int) 0 >> 1))
    19      abort ();
    20    return x;
    21  }
    22  
    23  
    24  dummy () {}
    25  
    26  main ()
    27  {
    28    /*      0x7ffffff3			0x80000001 */
    29    f1 ((~(unsigned int) 0 >> 1) - 12, ~(~(unsigned int) 0 >> 1) + 1);
    30    f2 ((~(unsigned long int) 0 >> 1) - 12, ~(~(unsigned long int) 0 >> 1) + 1);
    31    exit (0);
    32  }