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

     1  unsigned int
     2  f1 (int diff)
     3  {
     4    return ((unsigned int) (diff < 0 ? -diff : diff));
     5  }
     6  
     7  unsigned int
     8  f2 (unsigned int diff)
     9  {
    10    return ((unsigned int) ((signed int) diff < 0 ? -diff : diff));
    11  }
    12  
    13  unsigned long long
    14  f3 (long long diff)
    15  {
    16    return ((unsigned long long) (diff < 0 ? -diff : diff));
    17  }
    18  
    19  unsigned long long
    20  f4 (unsigned long long diff)
    21  {
    22    return ((unsigned long long) ((signed long long) diff < 0 ? -diff : diff));
    23  }
    24  
    25  main ()
    26  {
    27    int i;
    28    for (i = 0; i <= 10; i++)
    29      {
    30        if (f1 (i) != i)
    31  	abort ();
    32        if (f1 (-i) != i)
    33  	abort ();
    34        if (f2 (i) != i)
    35  	abort ();
    36        if (f2 (-i) != i)
    37  	abort ();
    38        if (f3 ((long long) i) != i)
    39  	abort ();
    40        if (f3 ((long long) -i) != i)
    41  	abort ();
    42        if (f4 ((long long) i) != i)
    43  	abort ();
    44        if (f4 ((long long) -i) != i)
    45  	abort ();
    46      }
    47    exit (0);
    48  }