3 type: bool, char, short, long
8 /* This is not only a regression test, the focus of this test
9 is more on the generated code (volatile!). */
13 #if defined(TYPE_bool) && !defined(SDCC)
16 # define UNSIGNED unsigned
19 #if defined(TYPE_bool)
25 #if defined(TYPE_bool) && defined(__bool_true_false_are_defined)
27 #elif defined(TYPE_bool) && !defined(__bool_true_false_are_defined)
28 # if defined(PORT_HOST)
29 # define MASK 0xffffffff
34 #elif defined(TYPE_char)
36 #elif defined(TYPE_short)
38 #elif defined(TYPE_long)
39 # define MASK 0xffffffff
41 # warning Unknown type
44 /* the variable 'mask' is only defined to see if MASK is correctly set up */
45 const unsigned long mask = MASK;
48 volatile UNSIGNED {type} uv;
49 /* an array would be nicer, but an array of bits isn't possible */
50 _data {type} a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 ,
51 a10, a11, a12, a13, a14, a15, a16, a17, a18, a19,
53 _data UNSIGNED {type} ua0, ua1, ua2, ua3, ua4, ua5, ua6;
55 _data volatile UNSIGNED {type} ub = 0xbe;
115 #if defined(TYPE_bool) && defined(__bool_true_false_are_defined)
120 ASSERT( a3 == ({type}) 0x33);
121 ASSERT(ua1 == ({type}) 0x7b);
122 ASSERT( a5 == ({type}) 0x33);
131 ASSERT( a10 == ({type}) MASK);
132 ASSERT( a11 == ({type}) MASK);
138 ASSERT( a15 == ({type}) MASK);
141 ASSERT( a17 == ({type}) MASK);
145 ASSERT( v == ({type}) MASK);