Regression file for testing the nested for-loop bug in the PIC port that Steve Tell...
[fw/sdcc] / src / regression / arrays.c
1 #define __16F873
2 #include "p16f873.h"
3 //#include "p16c84.h"
4
5 unsigned char success = 0;
6 unsigned char failures = 0;
7 unsigned char dummy = 0;
8
9 bit bit0 = 0;
10 unsigned int aint0 = 0;
11 unsigned int aint1 = 0;
12 unsigned char achar0 = 0;
13 unsigned char achar1 = 0;
14
15 void
16 done ()
17 {
18
19   dummy++;
20
21 }
22
23 void
24 bool_or1 (void)
25 {
26
27   if ((achar0 > 0) || (achar1 > 0))
28     failures++;
29 }
30
31 void
32 bool_or2 (void)
33 {
34
35   if (achar0 || achar1)
36     failures++;
37 }
38
39 void
40 bool_test1 (void)
41 {
42
43   if ((achar0 == 0) || achar1)
44     failures++;
45 }
46
47
48 void
49 bool_test2 (void)
50 {
51
52   if ((achar0 == 0) || aint0)
53     failures++;
54 }
55
56 void
57 bool_and1 (void)
58 {
59
60   if (achar0 && achar1)
61     failures++;
62 }
63
64 void
65 bin_or1 (void)
66 {
67
68   char t;
69
70   t = achar0 | achar1;
71   if (t)
72     failures++;
73 }
74
75 void
76 bin_xor1 (void)
77 {
78
79   if (achar0 ^ achar1)
80     failures++;
81 }
82
83
84 void
85 bool_test3 (void)
86 {
87
88   if ((achar0 == 0x42) || (achar1 == 42))
89     failures++;
90 }
91
92
93 void
94 bool_or_lit1 (void)
95 {
96
97   achar0 |= 0x0f;
98
99   if (achar0 > 0x10)
100     failures++;
101
102   if ((achar0 | 0x10) > 0xf0)
103     failures++;
104
105 }
106
107 void
108 bool_and_lit1 (void)
109 {
110
111   achar0 &= 0xf0;
112
113   if (achar0 > 0x10)
114     failures++;
115
116   if ((achar0 & 0x10) > 0xf0)
117     failures++;
118
119   achar0 &= 0xef;
120
121 }
122
123 void
124 main (void)
125 {
126
127   bool_or1 ();
128   bool_or2 ();
129   bool_and1 ();
130   bin_or1 ();
131   bin_xor1 ();
132
133   achar0++;
134   bool_and1 ();
135   bool_test1 ();
136   bool_test2 ();
137   bool_test3 ();
138
139
140   achar0--;
141   achar1++;
142   bool_and1 ();
143
144   achar0 = 0;
145   achar1 = 0;
146
147   bool_or_lit1 ();
148   bool_and_lit1 ();
149
150   success = failures;
151   done ();
152 }