| /* PR sanitizer/70712 */ | |
| /* { dg-do run } */ | |
| struct __attribute__((aligned (64))) S | |
| { | |
| char s[4]; | |
| }; | |
| struct T | |
| { | |
| char t[8]; | |
| char u[480]; | |
| }; | |
| __attribute__((noinline, noclone)) void | |
| foo (struct T *p, struct S *q) | |
| { | |
| __builtin_memset (p->t, '\0', sizeof (p->t)); | |
| __builtin_memset (p->u, '\0', sizeof (p->u)); | |
| __builtin_memset (q->s, '\0', sizeof (q->s)); | |
| } | |
| int | |
| main () | |
| { | |
| struct S s; | |
| struct T t; | |
| foo (&t, &s); | |
| asm volatile ("" : : "r" (&t), "r" (&s) : "memory"); | |
| return 0; | |
| } |