no bitfields yet
[fw/sdcc] / support / regression / tests / bitfields.c
1 /** Bitfield tests.
2
3 */
4 #include <testfwk.h>
5
6 struct {
7   char c0_3 : 3;
8   char c3_5 : 5;
9 } c_bitfield;
10
11 struct {
12   int i0_7 : 7;
13   int i7_9 : 9;
14 } i_bitfield;
15
16 struct {
17   long l0_7 : 7;
18   long l7_10 : 10;
19   long l17_15 : 15;
20 } l_bitfield;
21
22 void
23 testBitfields(void)
24 {
25 #if 0 // not yet
26   c_bitfield.c0_3 = 2;
27   c_bitfield.c3_5 = 3;
28   ASSERT(*(char *)(&c_bitfield) == (2 + (3<<3)) );
29
30   i_bitfield.i0_7 = 23;
31   i_bitfield.i7_9 = 234;
32   ASSERT(*(int *)(&i_bitfield) == (23 + (234<<7)) );
33
34   l_bitfield.l0_7 = 23;
35   l_bitfield.l7_10 = 234;
36   l_bitfield.l17_15 = 2345;
37   ASSERT(*(long *)(&l_bitfield) == (23 + (234<<7) + (2345<<17)) );
38 #endif
39 }