c66e9976b405297b5b25ac161f5e8a9bfcb51e90
[fw/sdcc] / src / regression / compare6.c
1 #define __16F873
2 #include "p16f873.h"
3 // Compound comparisons
4
5 unsigned char success = 0;
6 unsigned char failures = 0;
7 unsigned char dummy = 0;
8
9 //bit bit0 = 0;
10 int int0 = 0;
11 int int1 = 0;
12 unsigned char uchar0 = 0;
13 unsigned char uchar1 = 0;
14 char char0 = 0;
15 char char1 = 0;
16 char long0 = 0;
17 char long1 = 0;
18
19 void
20 done ()
21 {
22   dummy++;
23 }
24
25
26 void c_char(void)
27 {
28
29   if(char0 || char1)
30     failures++;
31
32   if(char0 && char1)
33     failures++;
34
35   if(char0 > char1)
36     failures++;
37
38   if((char0+1)  < char1)
39     failures++;
40
41   if((char0+5) >= (char1+9))
42     failures++;
43
44   char0++;
45
46   if(char0 && char1)
47     failures++;
48
49   if(char0 != (char1+1) )
50     failures++;
51
52   if(!char0)
53     failures++;
54
55   if(char1 || !char0)
56     failures++;
57
58   if((char0 >5 ) && (char0 < 10)) 
59     failures++;
60
61   char0 +=5; /* char0 = 6 now */
62
63
64   if(!((char0 >5 ) && (char0 < 10)))
65     failures++;
66
67 }
68
69
70 void c_int(void)
71 {
72
73   if(int0 || int1)
74     failures++;
75
76   if(int0 && int1)
77     failures++;
78
79   if(int0 > int1)
80     failures++;
81
82   if((int0+1)  < int1)
83     failures++;
84
85   if((int0+5) >= (int1+9))
86     failures++;
87
88   int0++;
89
90   if(int0 && int1)
91     failures++;
92
93   if(int0 != (int1+1) )
94     failures++;
95
96   if(!int0)
97     failures++;
98
99   if(int1 || !int0)
100     failures++;
101
102   if((int0 >5 ) && (int0 < 10)) 
103     failures++;
104
105   int0 +=5; /* int0 = 6 now */
106
107
108   if(!((int0 >5 ) && (int0 < 10)))
109     failures++;
110
111 }
112
113
114 void c_long(void)
115 {
116
117   if(long0 || long1)
118     failures++;
119
120   if(long0 && long1)
121     failures++;
122
123   if(long0 > long1)
124     failures++;
125
126   if((long0+1)  < long1)
127     failures++;
128
129   if((long0+5) >= (long1+9))
130     failures++;
131
132   long0++;
133
134   if(long0 && long1)
135     failures++;
136
137   if(long0 != (long1+1) )
138     failures++;
139
140   if(!long0)
141     failures++;
142
143   if(long1 || !long0)
144     failures++;
145
146   if((long0 >5 ) && (long0 < 10)) 
147     failures++;
148
149   long0 +=5; /* long0 = 6 now */
150
151
152   if(!((long0 >5 ) && (long0 < 10)))
153     failures++;
154
155 }
156
157 void c_uminus(void)
158 {
159
160   int1 = -int0;
161   if(int1 < 0)
162     failures++;
163 }
164
165 void
166 main (void)
167 {
168
169   c_char();
170   c_int();
171   c_long();
172
173   int0 = -1;
174   c_uminus();
175   if(int1 != 1)
176     failures++;
177
178   success = failures;
179   done ();
180 }