40 lines
768 B
C
40 lines
768 B
C
/* 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);
|
|
}
|