/* 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; }