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