| /* { dg-require-effective-target int32plus } */ | |
| #include <limits.h> | |
| extern void exit (int); | |
| extern void abort (); | |
| void test01(unsigned int a, unsigned int b) | |
| { | |
| if (a < 5) | |
| abort(); | |
| if (b < 5) | |
| abort(); | |
| if (a - b != 5) | |
| abort(); | |
| } | |
| void test02(unsigned int a, unsigned int b) | |
| { | |
| if (a >= 12) | |
| if (b > 15) | |
| if (a - b < UINT_MAX - 15U) | |
| abort (); | |
| } | |
| int main(int argc, char *argv[]) | |
| { | |
| unsigned x = 0x80000000; | |
| test01(x + 5, x); | |
| test02(14, 16); | |
| exit (0); | |
| } | |