1#include <limits.h>
2
3gt (a, b)
4{
5  return a > b;
6}
7
8ge (a, b)
9{
10  return a >= b;
11}
12
13lt (a, b)
14{
15  return a < b;
16}
17
18le (a, b)
19{
20  return a <= b;
21}
22
23void
24true (c)
25{
26  if (!c)
27    abort();
28}
29
30void
31false (c)
32{
33  if (c)
34    abort();
35}
36
37f ()
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
104main ()
105{
106  f ();
107  exit (0);
108}
109