/* PR tree-optimization/112924 */ /* { dg-do compile } */ /* { dg-options "-O2 -w" } */ /* { dg-additional-options "-msse2" { target i?86-*-* x86_64-*-* } } */ struct S { long a; char b[64]; }; void foo (struct S a); char c; int d[3541]; static void bar (struct S *s, char *p) { unsigned int a = sizeof (d) - sizeof (int) - s->a; long c = __builtin_object_size (s, 0); for (; a >= 64; a -= 64, p += 4); __builtin___memcpy_chk (s, p, a, c); } void baz (void) { struct S s = {}; bar (&s, &c); foo (s); }