OSDN Git Service

PR middle-end/35456
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / compare-1.c
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
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
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
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
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
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
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
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