1 #include <limits.h>
2 
gt(a,b)3 gt (a, b)
4 {
5   return a > b;
6 }
7 
ge(a,b)8 ge (a, b)
9 {
10   return a >= b;
11 }
12 
lt(a,b)13 lt (a, b)
14 {
15   return a < b;
16 }
17 
le(a,b)18 le (a, b)
19 {
20   return a <= b;
21 }
22 
23 void
24 true (c)
25 {
26   if (!c)
27     abort();
28 }
29 
30 void
31 false (c)
32 {
33   if (c)
34     abort();
35 }
36 
f()37 f ()
38 {
39   true (gt (2, 1));
40   false (gt (1, 2));
41 
42   true (gt (INT_MAX, 0));
43   false (gt (0, INT_MAX));
44   true (gt (INT_MAX, 1));
45   false (gt (1, INT_MAX));
46 
47   false (gt (INT_MIN, 0));
48   true (gt (0, INT_MIN));
49   false (gt (INT_MIN, 1));
50   true (gt (1, INT_MIN));
51 
52   true (gt (INT_MAX, INT_MIN));
53   false (gt (INT_MIN, INT_MAX));
54 
55   true (ge (2, 1));
56   false (ge (1, 2));
57 
58   true (ge (INT_MAX, 0));
59   false (ge (0, INT_MAX));
60   true (ge (INT_MAX, 1));
61   false (ge (1, INT_MAX));
62 
63   false (ge (INT_MIN, 0));
64   true (ge (0, INT_MIN));
65   false (ge (INT_MIN, 1));
66   true (ge (1, INT_MIN));
67 
68   true (ge (INT_MAX, INT_MIN));
69   false (ge (INT_MIN, INT_MAX));
70 
71   false (lt (2, 1));
72   true (lt (1, 2));
73 
74   false (lt (INT_MAX, 0));
75   true (lt (0, INT_MAX));
76   false (lt (INT_MAX, 1));
77   true (lt (1, INT_MAX));
78 
79   true (lt (INT_MIN, 0));
80   false (lt (0, INT_MIN));
81   true (lt (INT_MIN, 1));
82   false (lt (1, INT_MIN));
83 
84   false (lt (INT_MAX, INT_MIN));
85   true (lt (INT_MIN, INT_MAX));
86 
87   false (le (2, 1));
88   true (le (1, 2));
89 
90   false (le (INT_MAX, 0));
91   true (le (0, INT_MAX));
92   false (le (INT_MAX, 1));
93   true (le (1, INT_MAX));
94 
95   true (le (INT_MIN, 0));
96   false (le (0, INT_MIN));
97   true (le (INT_MIN, 1));
98   false (le (1, INT_MIN));
99 
100   false (le (INT_MAX, INT_MIN));
101   true (le (INT_MIN, INT_MAX));
102 }
103 
main()104 main ()
105 {
106   f ();
107   exit (0);
108 }
109