// { dg-require-effective-target alloca } /* PR middle-end/86528 */ void __attribute__((noinline, noclone)) test(char *data, __SIZE_TYPE__ len) { static char const appended[] = "/./"; char *buf = __builtin_alloca (len + sizeof appended); __builtin_memcpy (buf, data, len); __builtin_strcpy (buf + len, &appended[data[len - 1] == '/']); if (__builtin_strcmp(buf, "test1234/./")) __builtin_abort(); } int main() { char *arg = "test1234/"; test(arg, __builtin_strlen(arg)); return 0; }