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