1/* Mis-aligned packed structures.  */
2
3typedef struct
4{
5  char b0;
6  char b1;
7  char b2;
8  char b3;
9  char b4;
10  char b5;
11} __attribute__ ((packed)) b_struct;
12
13
14typedef struct
15{
16  short a;
17  long b;
18  short c;
19  short d;
20  b_struct e;
21} __attribute__ ((packed)) a_struct;
22
23
24int
25main(void)
26{
27  volatile a_struct *a;
28  volatile a_struct b;
29
30  a = &b;
31  *a = (a_struct){1,2,3,4};
32  a->e.b4 = 'c';
33
34  if (a->a != 1 || a->b != 2 || a->c != 3 || a->d != 4 || a->e.b4 != 'c')
35    abort ();
36
37  exit (0);
38}
39