Beautified (indented) compiler source according to gnu coding style
[fw/sdcc] / src / regression / add.c
1 //#include "p16c84.h"
2 // Addition tests
3
4 /* bit types are not ANSI - so provide a way of disabling bit types
5  * if this file is used to test other compilers besides SDCC */
6 #define SUPPORT_BIT_TYPES 1
7
8 /* Some compilers that support bit types do not support bit arithmetic 
9  * (like bitx = bity + bitz;) */
10 #define SUPPORT_BIT_ARITHMETIC 1
11
12 unsigned char success = 0;
13 unsigned char failures = 0;
14 unsigned char dummy = 0;
15
16 #if SUPPORT_BIT_TYPES
17
18 bit bit0 = 0;
19 bit bit1 = 0;
20 bit bit2 = 0;
21 bit bit3 = 0;
22 bit bit4 = 0;
23 bit bit5 = 0;
24 bit bit6 = 0;
25 bit bit7 = 0;
26 bit bit8 = 0;
27 bit bit9 = 0;
28 bit bit10 = 0;
29 bit bit11 = 0;
30
31 #endif
32
33 unsigned int aint0 = 0;
34 unsigned int aint1 = 0;
35 unsigned char achar0 = 0;
36 unsigned char achar1 = 0;
37 unsigned char achar2 = 0;
38 unsigned char achar3 = 0;
39 unsigned char *acharP = 0;
40
41 void
42 done ()
43 {
44
45   dummy++;
46
47 }
48
49 void
50 add_lit2uchar (void)
51 {
52
53   achar0 = achar0 + 5;
54
55   if (achar0 != 5)
56     failures++;
57
58   achar0 += 10;
59
60   if (achar0 != 15)
61     failures++;
62
63   achar0 = achar0 + 1;          // Should be an increment
64
65   if (achar0 != 16)
66     failures++;
67
68   for (achar1 = 0; achar1 < 100; achar1++)
69     achar0 += 2;
70
71   if (achar0 != 216)
72     failures++;
73
74 }
75
76 void
77 add_uchar2uchar (void)
78 {
79
80   achar1 = achar1 + achar0;
81
82   if (achar1 != 16)
83     failures++;
84
85   for (achar2 = 0; achar2 < 7; achar2++)
86     achar1 += achar0;
87
88   if (achar1 != 128)
89     failures++;
90
91 }
92
93 // assumes
94 //  achar0 = 0
95 //  achar1 = 32
96 //  achar2, achar3 can be anything.
97
98 void
99 add_uchar2uchar2 (void)
100 {
101
102
103   achar0++;
104   achar0 = achar0 + 1;
105   achar0 = achar0 + 2;
106   achar0 = achar0 + 3;
107   if (achar0 != 7)
108     failures++;
109
110   achar1 += achar0;
111   if (achar1 != 39)
112     failures++;
113
114   achar2 = achar1 + achar0;
115   if (achar2 != 46)
116     failures++;
117
118   achar3 = achar2 + achar1 + achar0;
119   if (achar3 != 92)
120     failures++;
121
122 }
123
124 #if SUPPORT_BIT_TYPES
125 void
126 add_bits (void)
127 {
128
129   bit1 = bit0;
130
131   bit0 = 1;
132
133   if (bit1 != 0)
134     failures++;
135
136   bit1 = bit1 + bit0;
137   if (bit1 != 1)
138     failures++;
139
140 #if SUPPORT_BIT_ARITHMETIC
141   bit2 = bit1 + bit3;
142   if (bit2)
143     failures++;
144
145   bit3 = bit4 + bit5 + bit6 + bit7 + bit0;
146   if (!bit3)
147     failures++;
148 #endif
149 }
150 #endif
151
152 /* add_bit2uchar(void) - assumes bit0 = 1, achar0 = 7  */
153
154 void
155 add_bit2uchar (void)
156 {
157
158   achar0 += bit0;
159
160   if (achar0 != 8)
161     failures++;
162
163   if (achar0 == bit0)
164     failures++;
165
166 }
167
168 void
169 add_bit2uint (void)
170 {
171
172   if (aint0 != bit11)
173     failures++;
174
175   aint0 += bit0;
176   if (aint0 != 1)
177     failures++;
178
179 }
180 void
181 main (void)
182 {
183
184   add_lit2uchar ();
185
186   achar0 = 16;
187   achar1 = 0;
188   add_uchar2uchar ();
189
190
191   achar0 = 0;
192   achar1 = 32;
193   add_uchar2uchar2 ();
194
195 #if SUPPORT_BIT_TYPES
196   add_bits ();
197
198   add_bit2uchar ();
199   add_bit2uint ();
200 #endif
201
202
203   success = failures;
204   done ();
205 }