3 type: bool, char, unsigned char, unsigned short, unsigned long
10 #pragma disable_warning 180 //no warning about using complement on bit/unsigned char
13 #if defined (SDCC_hc08) || defined (SDCC_z80) || defined (SDCC_gbz80) || defined (SDCC_pic14) || defined (SDCC_pic16)
14 /* sdcc tagrets not supporting bit type */
18 #if defined (__GNUC__) && defined (__alpha__) && (__GNUC__ < 3)
19 /* since this fails on GCC 2.95.4 on alpha... */
27 char foo(bool a, bool b, char c)
32 char complement(bool a, bool b)
37 {type} _0 = 0, _1 = 1, _ff = 0xFF, _ffff = -1;
46 ASSERT (foo(x,3,4) == 6);
48 ASSERT (complement (~_0, 1));
49 ASSERT (complement (~_1, 1));
52 ASSERT (complement (~_ff, 0));
54 ASSERT (complement (~_ff, 1));
58 ASSERT (complement (~_ffff, 1));
59 #elif defined TYPE_char
60 ASSERT (complement (~_ffff, 0));
62 if (sizeof({type}) < sizeof(int))
63 ASSERT (complement (~_ffff, 1));
65 ASSERT (complement (~_ffff, 0));