1 struct __attribute__((packed)) S
2 {
3   int a, b, c;
4 };
5 
6 static int __attribute__ ((noinline,noclone))
extract(const char * p)7 extract(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)16 int 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