5 /* sorry about the uggly source,
6 but this way it can be the same as in the regression tests */
7 #define ASSERT(x) c = (x)
21 ASSERT (! (INT8_MIN - 1 == s8)); /* WARNING */
22 ASSERT (! (INT8_MAX + 1 == s8)); /* WARNING */
23 ASSERT ( (INT8_MIN - 1 != s8)); /* WARNING */
24 ASSERT ( (INT8_MAX + 1 != s8)); /* WARNING */
25 ASSERT ( (INT8_MIN - 1 < s8)); /* WARNING */
26 ASSERT (! (INT8_MAX < s8)); /* WARNING */
27 ASSERT ( (INT8_MIN <= s8)); /* WARNING */
28 ASSERT (! (INT8_MAX + 1 <= s8)); /* WARNING */
29 ASSERT (! (INT8_MIN > s8)); /* WARNING */
30 ASSERT ( (INT8_MAX + 1 > s8)); /* WARNING */
31 ASSERT (! (INT8_MIN - 1 >= s8)); /* WARNING */
32 ASSERT ( (INT8_MAX >= s8)); /* WARNING */
34 ASSERT (! ( 0 - 1 == u8)); /* WARNING */
35 ASSERT (! (UINT8_MAX + 1 == u8)); /* WARNING */
36 ASSERT ( ( 0 - 1 != u8)); /* WARNING */
37 ASSERT ( (UINT8_MAX + 1 != u8)); /* WARNING */
38 ASSERT ( ( 0 - 1 < u8)); /* WARNING */
39 ASSERT (! (UINT8_MAX < u8)); /* WARNING */
40 ASSERT ( ( 0 <= u8)); /* WARNING */
41 ASSERT (! (UINT8_MAX + 1 <= u8)); /* WARNING */
42 ASSERT (! ( 0 > u8)); /* WARNING */
43 ASSERT ( (UINT8_MAX + 1 > u8)); /* WARNING */
44 ASSERT (! ( 0 - 1 >= u8)); /* WARNING */
45 ASSERT ( (UINT8_MAX >= u8)); /* WARNING */
47 /* force extension to long to avoid int (16 bit) overflow */
48 ASSERT (! (INT16_MIN - 1L == s16)); /* WARNING */
49 ASSERT (! (INT16_MAX + 1L == s16)); /* WARNING */
50 ASSERT ( (INT16_MIN - 1L != s16)); /* WARNING */
51 ASSERT ( (INT16_MAX + 1L != s16)); /* WARNING */
52 ASSERT ( (INT16_MIN - 1L < s16)); /* WARNING */
53 ASSERT (! (INT16_MAX < s16)); /* WARNING */
54 ASSERT ( (INT16_MIN <= s16)); /* WARNING */
55 ASSERT (! (INT16_MAX + 1L <= s16)); /* WARNING */
56 ASSERT (! (INT16_MIN > s16)); /* WARNING */
57 ASSERT ( (INT16_MAX + 1L > s16)); /* WARNING */
58 ASSERT (! (INT16_MIN - 1L >= s16)); /* WARNING */
59 ASSERT ( (INT16_MAX >= s16)); /* WARNING */
61 ASSERT (! ( 0 - 1L == u16)); /* WARNING */
62 ASSERT (! (UINT16_MAX + 1L == u16)); /* WARNING */
63 ASSERT ( ( 0 - 1L != u16)); /* WARNING */
64 ASSERT ( (UINT16_MAX + 1L != u16)); /* WARNING */
65 ASSERT ( ( 0 - 1L < u16)); /* WARNING */
66 ASSERT (! (UINT16_MAX < u16)); /* WARNING */
67 ASSERT ( ( 0 <= u16)); /* WARNING */
68 ASSERT (! (UINT16_MAX + 1L <= u16)); /* WARNING */
69 ASSERT (! ( 0 > u16)); /* WARNING */
70 ASSERT ( (UINT16_MAX + 1L > u16)); /* WARNING */
71 ASSERT (! ( 0 - 1L >= u16)); /* WARNING */
72 ASSERT ( (UINT16_MAX >= u16)); /* WARNING */
74 /* sdcc can't hold a number (INT32_MIN - 1) or (INT32_MAX + 1),
75 there's no 'double' or 'long long' */
76 /* ASSERT (! (INT32_MIN - 1 == s32)); */
77 /* ASSERT (! (INT32_MAX + 1 == s32)); */
78 /* ASSERT ( (INT32_MIN - 1 != s32)); */
79 /* ASSERT ( (INT32_MAX + 1 != s32)); */
80 /* ASSERT ( (INT32_MIN - 1 < s32)); */
81 ASSERT (! (INT32_MAX < s32)); /* WARNING(SDCC) */
82 ASSERT ( (INT32_MIN <= s32)); /* WARNING(SDCC) */
83 /* ASSERT (! (INT32_MAX + 1 <= s32)); */
84 ASSERT (! (INT32_MIN > s32)); /* WARNING(SDCC) */
85 /* ASSERT ( (INT32_MAX + 1 > s32)); */
86 /* ASSERT (! (INT32_MIN - 1 >= s32)); */
87 ASSERT ( (INT32_MAX >= s32)); /* WARNING(SDCC) */
89 /* (0 - 1) wraps around to UINT32_MAX -> untestable */
90 /* ASSERT (! ( 0 - 1 == u32)); */
91 /* ASSERT (! (UINT32_MAX + 1 == u32)); */
92 /* ASSERT ( ( 0 - 1 != u32)); */
93 /* ASSERT ( (UINT32_MAX + 1 != u32)); */
94 /* ASSERT ( ( 0 - 1 < u32)); */
95 ASSERT (! (UINT32_MAX < u32)); /* WARNING(SDCC) */
96 ASSERT ( ( 0 <= u32)); /* WARNING(SDCC) */
97 /* ASSERT (! (UINT32_MAX + 1 <= u32)); */
98 ASSERT (! ( 0 > u32)); /* WARNING(SDCC) */
99 /* ASSERT ( (UINT32_MAX + 1 > u32)); */
100 /* ASSERT (! ( 0 - 1 >= u32)); */
101 ASSERT ( (UINT32_MAX >= u32)); /* WARNING(SDCC) */
108 s8 = -129; /* WARNING */
111 s8 = 256; /* WARNING */
113 s8 = -129; /* WARNING */
116 u8 = 256; /* WARNING */
118 s16 = -32769L; /* WARNING */
121 s16 = 65536L; /* WARNING */
123 s16 = -32769L; /* WARNING */
126 u16 = 65536L; /* WARNING */
128 /* sdcc can't hold a number (INT32_MIN - 1) or (INT32_MAX + 1),
129 there's no 'double' or 'long long' */
143 #if defined(PORT_HOST)
144 volatile bool sb, ub;
146 volatile signed bool sb;
147 volatile unsigned bool ub;
160 ASSERT (! (-2 == sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
161 ASSERT ( (-1 == sb));
162 ASSERT ( ( 0 == sb));
163 ASSERT (! ( 1 == sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
165 ASSERT ( (-2 != sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
166 ASSERT ( (-1 != sb));
167 ASSERT ( ( 0 != sb));
168 ASSERT ( ( 1 != sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
170 ASSERT ( (-2 < sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
172 ASSERT (! ( 0 < sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
174 ASSERT ( (-1 <= sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
175 ASSERT ( ( 0 <= sb));
176 ASSERT (! ( 1 <= sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
178 ASSERT (! (-1 > sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
180 ASSERT ( ( 1 > sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
182 ASSERT (! (-2 >= sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
183 ASSERT ( (-1 >= sb));
184 ASSERT ( ( 0 >= sb)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
187 ASSERT (! (-1 == ub)); /* WARNING(SDCC) */
188 ASSERT ( ( 0 == ub));
189 ASSERT ( ( 1 == ub));
190 ASSERT (! ( 2 == ub)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
192 ASSERT ( (-1 != ub)); /* WARNING(SDCC) */
193 ASSERT ( ( 0 != ub));
194 ASSERT ( ( 1 != ub));
195 ASSERT ( ( 2 != ub)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
197 ASSERT ( (-1 < ub)); /* WARNING(SDCC) */
199 ASSERT (! ( 1 < ub)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
201 ASSERT ( ( 0 <= ub)); /* WARNING(SDCC) */
202 ASSERT ( ( 1 <= ub));
203 ASSERT (! ( 2 <= ub)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
205 ASSERT (! ( 0 > ub)); /* WARNING(SDCC) */
207 ASSERT ( ( 2 > ub)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
209 ASSERT (! (-1 >= ub)); /* WARNING(SDCC) */
210 ASSERT ( ( 0 >= ub));
211 ASSERT ( ( 1 >= ub)); /* WARNING(SDCC_mcs51|SDCC_ds390) */
225 str.sb1 = -2; /* WARNING */
228 str.sb1 = 2; /* WARNING */
230 str.ub1 = -2; /* WARNING */
233 str.ub1 = 2; /* WARNING */
235 str.sb3 = -5; /* WARNING */
238 str.sb3 = 8; /* WARNING */
240 str.ub3 = -5; /* WARNING */
243 str.ub3 = 8; /* WARNING */
245 ASSERT (! (-2 == str.sb1)); /* WARNING */
246 ASSERT ( (-1 == str.sb1));
247 ASSERT ( ( 0 == str.sb1));
248 ASSERT (! ( 1 == str.sb1)); /* WARNING */
250 ASSERT (! (-1 == str.ub1)); /* WARNING(SDCC) */
251 ASSERT ( ( 0 == str.ub1));
252 ASSERT ( ( 1 == str.ub1));
253 ASSERT (! ( 2 == str.ub1)); /* WARNING(SDCC) */
255 ASSERT (! (-5 == str.sb3)); /* WARNING */
256 ASSERT ( (-4 == str.sb3));
257 ASSERT ( ( 3 == str.sb3));
258 ASSERT (! ( 4 == str.sb3)); /* WARNING */
260 ASSERT (! (-1 == str.ub3)); /* WARNING(SDCC) */
261 ASSERT ( ( 0 == str.ub3));
262 ASSERT ( ( 7 == str.ub3));
263 ASSERT (! ( 8 == str.ub3)); /* WARNING(SDCC) */