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
7 extern void abort (void);
8
ieq(int x,int y,int ok)9 int 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
ine(int x,int y,int ok)40 int 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
ilt(int x,int y,int ok)50 int 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
ile(int x,int y,int ok)60 int 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
igt(int x,int y,int ok)70 int 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
ige(int x,int y,int ok)80 int 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
90 int
main()91 main ()
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