1struct A {
2  unsigned char x;
3  unsigned b1 : 1;
4  unsigned b2 : 1;
5  unsigned b3 : 1;
6  unsigned b4 : 1;
7  unsigned b5 : 1;
8  unsigned b6 : 1;
9  unsigned b7 : 1;
10  unsigned b8 : 1;
11  unsigned b9 : 1;
12  unsigned b10 : 1;
13  unsigned char y;
14};
15
16struct B {
17  unsigned foo : 31;
18  unsigned char bar : 1;
19};
20
21struct C {
22  unsigned char x;
23  unsigned b1 : 1;
24  unsigned b2 : 1;
25  unsigned baz;
26};
27
28struct Date1 {
29   unsigned short nWeekDay  : 3;    // 0..7   (3 bits)
30   unsigned short nMonthDay : 6;    // 0..31  (6 bits)
31   unsigned short nMonth    : 5;    // 0..12  (5 bits)
32   unsigned short nYear     : 8;    // 0..100 (8 bits)
33};
34
35struct Date2 {
36   unsigned short nWeekDay  : 3;    // 0..7   (3 bits)
37   unsigned short nMonthDay : 6;    // 0..31  (6 bits)
38   unsigned short nMonth    : 5;    // 0..12  (5 bits)
39   unsigned short nYear     : 8;    // 0..100 (8 bits)
40   unsigned char byte : 8;
41};
42
43struct Date3 {
44   unsigned short nWeekDay  : 3;    // 0..7   (3 bits)
45   unsigned short nMonthDay : 6;    // 0..31  (6 bits)
46   unsigned short nMonth    : 5;    // 0..12  (5 bits)
47   unsigned short nYear     : 8;    // 0..100 (8 bits)
48   unsigned char byte;
49};
50