annotate gcc/testsuite/gcc.dg/pack-test-4.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR c/11885
kono
parents:
diff changeset
2 Bug: flag4 was allocated into the same byte as the other flags.
kono
parents:
diff changeset
3 { dg-options "" }
kono
parents:
diff changeset
4 { dg-do run } */
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 extern void abort (void);
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 typedef unsigned char uint8_t;
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 typedef struct {
kono
parents:
diff changeset
11 uint8_t flag1:2;
kono
parents:
diff changeset
12 uint8_t flag2:1;
kono
parents:
diff changeset
13 uint8_t flag3:1;
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 uint8_t flag4;
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 } __attribute__ ((packed)) MyType;
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 int main (void)
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 MyType a;
kono
parents:
diff changeset
22 MyType *b = &a;
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 b->flag1 = 0;
kono
parents:
diff changeset
25 b->flag2 = 0;
kono
parents:
diff changeset
26 b->flag3 = 0;
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 b->flag4 = 0;
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 b->flag4++;
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 if (b->flag1 != 0)
kono
parents:
diff changeset
33 abort ();
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 return 0;
kono
parents:
diff changeset
36 }