1 /* PR libstdc++/88101 */
3 struct S
{ char a
; short b
; char c
; } s1
[24], s2
[24];
4 struct T
{ char a
; long long b
; char c
; struct S d
[3]; long long e
; char f
; } t1
, t2
;
5 struct U
{ char a
; long long b
; char c
; struct S d
[25]; long long e
; char f
; } u1
, u2
;
7 __attribute__((noipa
)) void
8 foo (struct S
*s
, struct T
*t
, struct U
*u
)
11 t
->a
= -1; t
->b
= -1; t
->c
= -1; t
->e
= -1; t
->f
= -1;
12 u
->a
= -1; u
->b
= -1; u
->c
= -1; u
->e
= -1; u
->f
= -1;
13 for (i
= 0; i
< 24; i
++)
19 for (i
= 0; i
< 3; i
++)
25 for (i
= 0; i
< 25; i
++)
36 __builtin_memset (&s2
, -1, sizeof (s2
));
37 __builtin_memset (&t2
, -1, sizeof (t2
));
38 __builtin_memset (&u2
, -1, sizeof (u2
));
39 foo (&s1
[0], &t1
, &u1
);
40 foo (&s2
[0], &t2
, &u2
);
41 __builtin_clear_padding (&s2
);
42 __builtin_clear_padding (&t2
);
43 __builtin_clear_padding (&u2
);
44 if (__builtin_memcmp (&s1
, &s2
, sizeof (s1
))
45 || __builtin_memcmp (&t1
, &t2
, sizeof (t1
))
46 || __builtin_memcmp (&u1
, &u2
, sizeof (u1
)))