struct / union in initializer, RFE #901.
[sdcc.git] / sdcc / support / regression / tests / gcc-torture-execute-20070623-1.c
bloba5786aea25d556f46af167e2e24211e80aa5fed3
1 /*
2 20070623-1.c from the execute part of the gcc torture suite.
3 */
5 #include <testfwk.h>
7 #ifdef __SDCC
8 #pragma std_c99
9 #endif
11 #include <limits.h>
13 int nge(int a, int b) {return -(a >= b);}
14 int ngt(int a, int b) {return -(a > b);}
15 int nle(int a, int b) {return -(a <= b);}
16 int nlt(int a, int b) {return -(a < b);}
17 int neq(int a, int b) {return -(a == b);}
18 int nne(int a, int b) {return -(a != b);}
19 int ngeu(unsigned a, unsigned b) {return -(a >= b);}
20 int ngtu(unsigned a, unsigned b) {return -(a > b);}
21 int nleu(unsigned a, unsigned b) {return -(a <= b);}
22 int nltu(unsigned a, unsigned b) {return -(a < b);}
25 void
26 testTortureExecute (void)
28 if (nge(INT_MIN, INT_MAX) != 0) ASSERT (0);
29 if (nge(INT_MAX, INT_MIN) != -1) ASSERT (0);
30 if (ngt(INT_MIN, INT_MAX) != 0) ASSERT (0);
31 if (ngt(INT_MAX, INT_MIN) != -1) ASSERT (0);
32 if (nle(INT_MIN, INT_MAX) != -1) ASSERT (0);
33 if (nle(INT_MAX, INT_MIN) != 0) ASSERT (0);
34 if (nlt(INT_MIN, INT_MAX) != -1) ASSERT (0);
35 if (nlt(INT_MAX, INT_MIN) != 0) ASSERT (0);
37 if (neq(INT_MIN, INT_MAX) != 0) ASSERT (0);
38 if (neq(INT_MAX, INT_MIN) != 0) ASSERT (0);
39 if (nne(INT_MIN, INT_MAX) != -1) ASSERT (0);
40 if (nne(INT_MAX, INT_MIN) != -1) ASSERT (0);
42 if (ngeu(0, ~0U) != 0) ASSERT (0);
43 if (ngeu(~0U, 0) != -1) ASSERT (0);
44 if (ngtu(0, ~0U) != 0) ASSERT (0);
45 if (ngtu(~0U, 0) != -1) ASSERT (0);
46 if (nleu(0, ~0U) != -1) ASSERT (0);
47 if (nleu(~0U, 0) != 0) ASSERT (0);
48 if (nltu(0, ~0U) != -1) ASSERT (0);
49 if (nltu(~0U, 0) != 0) ASSERT (0);
51 return;