modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-6.c (about) 1 /* { dg-require-effective-target int32plus } */ 2 #include <limits.h> 3 4 extern void exit (int); 5 extern void abort (); 6 7 void test01(unsigned int a, unsigned int b) 8 { 9 if (a < 5) 10 abort(); 11 if (b < 5) 12 abort(); 13 if (a - b != 5) 14 abort(); 15 } 16 17 void test02(unsigned int a, unsigned int b) 18 { 19 if (a >= 12) 20 if (b > 15) 21 if (a - b < UINT_MAX - 15U) 22 abort (); 23 } 24 25 int main(int argc, char *argv[]) 26 { 27 unsigned x = 0x80000000; 28 test01(x + 5, x); 29 test02(14, 16); 30 exit (0); 31 } 32 33 34