| int i; | |
| __attribute__((noinline, noclone)) void | |
| bar (char *p) | |
| { | |
| if (i < 1 || i > 6) | |
| __builtin_abort (); | |
| if (__builtin_memcmp (p, "abcdefg", i + 1) != 0) | |
| __builtin_abort (); | |
| __builtin_memset (p, ' ', 7); | |
| } | |
| __attribute__((noinline, noclone)) void | |
| foo (char *p, unsigned long l) | |
| { | |
| if (l < 1 || l > 6) | |
| return; | |
| char buf[7]; | |
| __builtin_memcpy (buf, p, l + 1); | |
| bar (buf); | |
| } | |
| int | |
| main () | |
| { | |
| for (i = 0; i < 16; i++) | |
| foo ("abcdefghijklmnop", i); | |
| return 0; | |
| } |