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