https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90285

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This is the new reduced testcase:
```
struct Foo { int a[10000]; };
typedef char arr1[10000*sizeof(int)];
static_assert (sizeof(Foo) == sizeof(arr1));
arr1 &foo (arr1 &s)
{
  Foo temp;
  __builtin_memmove (&temp, s, sizeof (arr1));
  __builtin_memmove (s, &temp, sizeof (arr1));
  return s;
}
```

Right now I think the memcpy->char array change only happens when the types
match rather than when the sizes match. Let me look into that.

Reply via email to