1 struct __attribute__((packed)) S 2 { 3 int a, b, c; 4 }; 5 6 static int __attribute__ ((noinline,noclone)) extract(const char * p)7extract(const char *p) 8 { 9 struct S s; 10 __builtin_memcpy (&s, p, sizeof(struct S)); 11 return s.a; 12 } 13 14 volatile int i; 15 main(void)16int main (void) 17 { 18 char p[sizeof(struct S) + 1]; 19 20 __builtin_memset (p, 0, sizeof(struct S) + 1); 21 i = extract (p + 1); 22 23 return 0; 24 } 25