struct __attribute__((packed)) S | |
{ | |
int a, b, c; | |
}; | |
static int __attribute__ ((noinline,noclone)) | |
extract(const char *p) | |
{ | |
struct S s; | |
__builtin_memcpy (&s, p, sizeof(struct S)); | |
return s.a; | |
} | |
volatile int i; | |
int main (void) | |
{ | |
char p[sizeof(struct S) + 1]; | |
__builtin_memset (p, 0, sizeof(struct S) + 1); | |
i = extract (p + 1); | |
return 0; | |
} |