1/* Copyright (C) 2002 Free Software Foundation.
2
3   Test for correctness of composite comparisons.
4
5   Written by Roger Sayle, 3rd June 2002.  */
6
7extern void abort (void);
8
9int ieq (int x, int y, int ok)
10{
11  if ((x<=y) && (x>=y))
12    {
13      if (!ok) abort ();
14    }
15  else
16    if (ok) abort ();
17
18  if ((x<=y) && (x==y))
19    {
20      if (!ok) abort ();
21    }
22  else
23    if (ok) abort ();
24
25  if ((x<=y) && (y<=x))
26    {
27      if (!ok) abort ();
28    }
29  else
30    if (ok) abort ();
31
32  if ((y==x) && (x<=y))
33    {
34      if (!ok) abort ();
35    }
36  else
37    if (ok) abort ();
38}
39
40int ine (int x, int y, int ok)
41{
42  if ((x<y) || (x>y))
43    {
44      if (!ok) abort ();
45    }
46  else
47    if (ok) abort ();
48}
49
50int ilt (int x, int y, int ok)
51{
52  if ((x<y) && (x!=y))
53    {
54      if (!ok) abort ();
55    }
56  else
57    if (ok) abort ();
58}
59
60int ile (int x, int y, int ok)
61{
62  if ((x<y) || (x==y))
63    {
64      if (!ok) abort ();
65    }
66  else
67    if (ok) abort ();
68}
69
70int igt (int x, int y, int ok)
71{
72  if ((x>y) && (x!=y))
73    {
74      if (!ok) abort ();
75    }
76  else
77    if (ok) abort ();
78}
79
80int ige (int x, int y, int ok)
81{
82  if ((x>y) || (x==y))
83    {
84      if (!ok) abort ();
85    }
86  else
87    if (ok) abort ();
88}
89
90int
91main ()
92{
93  ieq (1, 4, 0);
94  ieq (3, 3, 1);
95  ieq (5, 2, 0);
96
97  ine (1, 4, 1);
98  ine (3, 3, 0);
99  ine (5, 2, 1);
100
101  ilt (1, 4, 1);
102  ilt (3, 3, 0);
103  ilt (5, 2, 0);
104
105  ile (1, 4, 1);
106  ile (3, 3, 1);
107  ile (5, 2, 0);
108
109  igt (1, 4, 0);
110  igt (3, 3, 0);
111  igt (5, 2, 1);
112
113  ige (1, 4, 0);
114  ige (3, 3, 1);
115  ige (5, 2, 1);
116
117  return 0;
118}
119
120