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