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 }