1struct A { int i, j; char pad[512]; } a;
2
3int __attribute__((noinline))
4foo (void)
5{
6  __builtin_memset (&a, 0x26, sizeof a);
7  return a.i;
8}
9
10void __attribute__((noinline))
11bar (void)
12{
13  __builtin_memset (&a, 0x36, sizeof a);
14  a.i = 0x36363636;
15  a.j = 0x36373636;
16}
17
18int
19main (void)
20{
21  int i;
22  if (sizeof (int) != 4 || __CHAR_BIT__ != 8)
23    return 0;
24
25  if (foo () != 0x26262626)
26    __builtin_abort ();
27  for (i = 0; i < sizeof a; i++)
28    if (((char *)&a)[i] != 0x26)
29      __builtin_abort ();
30
31  bar ();
32  if (a.j != 0x36373636)
33    __builtin_abort ();
34  a.j = 0x36363636;
35  for (i = 0; i < sizeof a; i++)
36    if (((char *)&a)[i] != 0x36)
37      __builtin_abort ();
38  return 0;
39}
40