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