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
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 }