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