/* PR libstdc++/88101 */ /* { dg-do run } */ /* { dg-require-effective-target size20plus } */ typedef int T __attribute__((aligned (16384))); struct S { char a; short b; long double c; T d; T e; long long f; }; __attribute__((noipa)) void foo (struct S *s) { s->a = -1; s->b = -1; s->c = -18.52L; s->d = -1; s->e = -1; s->f = -1; } int main () { struct S s1, s2; __builtin_memset (&s1, 0, sizeof (s1)); __builtin_memset (&s2, -1, sizeof (s2)); foo (&s1); foo (&s2); __builtin_clear_padding (&s2); if (__builtin_memcmp (&s1, &s2, sizeof (s1))) __builtin_abort (); return 0; }