blob: 89c9b7eae435c093fd7d641d6fd9c5ddf65064c2 [file] [log] [blame]
/* PR c/78408 */
/* { dg-do compile { target size32plus } } */
/* { dg-options "-O2 -fdump-tree-fab1-details" } */
/* { dg-final { scan-tree-dump-not "after previous" "fab1" } } */
struct S { char a[32]; };
struct T { char a[65536]; };
void bar (int, struct S *, struct S *, struct T *, struct T *);
void baz (char *, char *);
void
f1 (void)
{
struct S a, b;
struct T c, d;
__builtin_memset (&b, 2, sizeof (b));
a = b;
__builtin_memset (&d, 3, sizeof (d));
c = d;
bar (3, &a, &b, &c, &d);
}
void
f2 (void)
{
char a[64], b[64];
__builtin_memset (a + 13, 2, 27);
__builtin_memcpy (b + 4, a + 17, 24);
baz (a, b);
}
void
f3 (void)
{
char a[64], b[64];
__builtin_memset (a + 13, 2, 27);
__builtin_memcpy (b + 4, a + 12, 5);
baz (a, b);
}