1int i;
2
3__attribute__((noinline, noclone)) void
4bar (char *p)
5{
6  if (i < 1 || i > 6)
7    __builtin_abort ();
8  if (__builtin_memcmp (p, "abcdefg", i + 1) != 0)
9    __builtin_abort ();
10  __builtin_memset (p, ' ', 7);
11}
12
13__attribute__((noinline, noclone)) void
14foo (char *p, unsigned long l)
15{
16  if (l < 1 || l > 6)
17    return;
18  char buf[7];
19  __builtin_memcpy (buf, p, l + 1);
20  bar (buf);
21}
22
23int
24main ()
25{
26  for (i = 0; i < 16; i++)
27    foo ("abcdefghijklmnop", i);
28  return 0;
29}
30