1 /* PR c/11885
2    Bug: flag4 was allocated into the same byte as the other flags.
3    { dg-options "" }
4    { dg-do run } */
5 
6 extern void abort (void);
7 
8 typedef unsigned char uint8_t;
9 
10 typedef struct {
11     uint8_t flag1:2;
12     uint8_t flag2:1;
13     uint8_t flag3:1;
14 
15     uint8_t flag4;
16 
17 } __attribute__ ((packed)) MyType;
18 
main(void)19 int main (void)
20 {
21   MyType a;
22   MyType *b = &a;
23 
24   b->flag1 = 0;
25   b->flag2 = 0;
26   b->flag3 = 0;
27 
28   b->flag4 = 0;
29 
30   b->flag4++;
31 
32   if (b->flag1 != 0)
33     abort ();
34 
35   return 0;
36 }
37