* src/regression/Makefile: removed bool2.c test, added -q linker option
[fw/sdcc] / src / regression / compare6.c
1 #include "gpsim_assert.h"
2 // Compound comparisons
3
4 unsigned char success = 0;
5 unsigned char failures = 0;
6 unsigned char dummy = 0;
7
8 //bit bit0 = 0;
9 int int0 = 0;
10 int int1 = 0;
11 unsigned char uchar0 = 0;
12 unsigned char uchar1 = 0;
13 char char0 = 0;
14 char char1 = 0;
15 char long0 = 0;
16 char long1 = 0;
17
18 void
19 done()
20 {
21   ASSERT(MANGLE(failures) == 0);
22   PASSED();
23 }
24
25 void c_char(void)
26 {
27
28   if(char0 || char1)
29     failures++;
30
31   if(char0 && char1)
32     failures++;
33
34   if(char0 > char1)
35     failures++;
36
37   if((char0+1)  < char1)
38     failures++;
39
40   if((char0+5) >= (char1+9))
41     failures++;
42
43   char0++;
44
45   if(char0 && char1)
46     failures++;
47
48   if(char0 != (char1+1) )
49     failures++;
50
51   if(!char0)
52     failures++;
53
54   if(char1 || !char0)
55     failures++;
56
57   if((char0 >5 ) && (char0 < 10)) 
58     failures++;
59
60   char0 +=5; /* char0 = 6 now */
61
62
63   if(!((char0 >5 ) && (char0 < 10)))
64     failures++;
65
66 }
67
68
69 void c_int(void)
70 {
71
72   if(int0 || int1)
73     failures++;
74
75   if(int0 && int1)
76     failures++;
77
78   if(int0 > int1)
79     failures++;
80
81   if((int0+1)  < int1)
82     failures++;
83
84   if((int0+5) >= (int1+9))
85     failures++;
86
87   int0++;
88
89   if(int0 && int1)
90     failures++;
91
92   if(int0 != (int1+1) )
93     failures++;
94
95   if(!int0)
96     failures++;
97
98   if(int1 || !int0)
99     failures++;
100
101   if((int0 >5 ) && (int0 < 10)) 
102     failures++;
103
104   int0 +=5; /* int0 = 6 now */
105
106
107   if(!((int0 >5 ) && (int0 < 10)))
108     failures++;
109
110 }
111
112
113 void c_long(void)
114 {
115
116   if(long0 || long1)
117     failures++;
118
119   if(long0 && long1)
120     failures++;
121
122   if(long0 > long1)
123     failures++;
124
125   if((long0+1)  < long1)
126     failures++;
127
128   if((long0+5) >= (long1+9))
129     failures++;
130
131   long0++;
132
133   if(long0 && long1)
134     failures++;
135
136   if(long0 != (long1+1) )
137     failures++;
138
139   if(!long0)
140     failures++;
141
142   if(long1 || !long0)
143     failures++;
144
145   if((long0 >5 ) && (long0 < 10)) 
146     failures++;
147
148   long0 +=5; /* long0 = 6 now */
149
150
151   if(!((long0 >5 ) && (long0 < 10)))
152     failures++;
153
154 }
155
156 void c_uminus(void)
157 {
158
159   int1 = -int0;
160   if(int1 < 0)
161     failures++;
162 }
163
164 void
165 main (void)
166 {
167
168   c_char();
169   c_int();
170   c_long();
171
172   int0 = -1;
173   c_uminus();
174   if(int1 != 1)
175     failures++;
176
177   success = failures;
178   done ();
179 }