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
6extern void abort (void);
7
8typedef unsigned char uint8_t;
9
10typedef 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
19int 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