* src/regression/ptrarg.c: added, fails due to bug #1430967
[fw/sdcc] / src / regression / compare3.c
1 #include "gpsim_assert.h"
2 //
3 // compare3.c
4 // regression testing program for comparing literals to variables
5 //
6
7
8 unsigned char failures = 0;
9
10 bit bit0 = 0;
11 unsigned int aint0 = 0;
12 unsigned int aint1 = 0;
13 unsigned char achar0 = 0;
14 unsigned char achar1 = 0;
15
16 void
17 done()
18 {
19   ASSERT(MANGLE(failures) == 0);
20   PASSED();
21 }
22
23 // compare to 0
24 // assumes
25 // achar0 == 0
26 // achar1 != 0
27 // aint0  == 0
28 // aint1  != 0
29
30 void c_0(void)
31 {
32
33   if(achar0 != 0)
34     failures++;
35
36   if(achar0)
37     failures++;
38
39   if(achar1 == 0)
40     failures++;
41
42   if(!achar1)
43     failures++;
44
45   if(aint0 != 0)
46     failures++;
47
48   if(aint0)
49     failures++;
50
51   if(aint1 == 0)
52     failures++;
53
54   if(!aint1)
55     failures++;
56
57 }
58
59 // compare to 1
60 // assumes
61 // achar0 != 1
62 // achar1 == 1
63 // aint0  != 1
64 // aint1  == 1
65
66 void c_1(void)
67 {
68
69   if(achar0 == 1)
70     failures++;
71
72   if(achar1 != 1)
73     failures++;
74
75   if(aint0 == 1)
76     failures++;
77
78   if(aint1 != 1)
79     failures++;
80
81 }
82
83 // compare to 2
84 // assumes
85 // achar0 == 2
86 // aint0  == 2
87
88 void c_2(void)
89 {
90
91   if(achar0 != 2)
92     failures++;
93
94   if(aint0 != 2)
95     failures++;
96
97 }
98
99 // compare to 0xff
100 // assumes
101 // achar0 == 0xff
102 // aint0  == 0xff
103
104 void c_ff(void)
105 {
106
107   if(achar0 != 0xff)
108     failures++;
109
110   if(aint0 != 0xff)
111     failures++;
112
113   if(aint0 == 0xfe)
114     failures++;
115
116   if(aint0 == 0xff00)
117     failures++;
118
119 }
120
121
122 // compare to 0x00a5
123 // assumes
124 // achar0  == 0xa5
125 // aint0  == 0x00a5
126
127 void c_a5(void)
128 {
129
130   if(achar0 != 0xa5)
131     failures++;
132
133   if(aint0 != 0xa5)
134     failures++;
135
136   if(aint0 == 0xa4)
137     failures++;
138
139   if(aint0 == 0xa500)
140     failures++;
141
142 }
143
144 // compare to 0xa500
145 // assumes
146 // achar0  == 0xa5
147 // aint0  == 0xa500
148
149 void c_a500(void)
150 {
151
152   if(achar0 == 0xa500)
153     failures++;
154
155   if(aint0 != 0xa500)
156     failures++;
157
158   if(aint0 == 0xa400)
159     failures++;
160
161   if(aint0 == 0x00a5)
162     failures++;
163
164 }
165
166 // compare to 0xabcd
167 // assumes
168 // achar0  == 0xa5
169 // aint0  == 0xabcd
170
171 void c_abcd(void)
172 {
173
174   if(achar0 == 0xabcd)
175     failures++;
176
177   if(aint0 != 0xabcd)
178     failures++;
179
180   if(aint0 == 0xab00)
181     failures++;
182
183   if(aint0 == 0x00cd)
184     failures++;
185
186   if(aint0 == 0x05cd)
187     failures++;
188
189   if(aint0 == 0xab05)
190     failures++;
191
192   if(aint0 == 0xab01)
193     failures++;
194
195   if(aint0 == 0x01cd)
196     failures++;
197
198   //  if(aint0 == 0x1234abcd)
199     //    failures++;
200
201 }
202
203 // assumes achar1 == 0
204 void c_ifelse1(void)
205 {
206
207   if(achar0)
208     achar0 = achar1;
209   else
210     achar0 = 0;
211
212   if(achar0)
213     failures++;
214 }
215
216 void
217 main (void)
218 {
219
220   aint1 = 1;
221   achar1 = 1;
222   c_0();
223   c_1();
224
225   aint0 = 2;
226   achar0 = 2;
227   c_2();
228
229   aint0 = 0xff;
230   achar0 = 0xff;
231   c_ff();
232
233   aint0 = 0xa5;
234   achar0 = 0xa5;
235   c_a5();
236
237   aint0 = 0xabcd;
238   c_abcd();
239
240   achar0 = 0;
241   achar1 = 0;
242   c_ifelse1();
243
244   achar0 = 1;
245   c_ifelse1();
246
247   done ();
248 }