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