1 /* { dg-do run } */
2 /* { dg-require-effective-target alloca } */
3
4 int __attribute__((noipa))
5 g (char *p)
6 {
7 return p[9];
8 }
9 int main (int argc, char **argv)
10 {
11 struct S {
12 char toto[argc + 16];
13 };
14 int f (struct S arg) {
15 __builtin_strcpy(arg.toto, "helloworld");
16 return g (arg.toto);
17 }
18 struct S bob;
19 __builtin_strcpy(bob.toto, "coucoucoucou");
20 if (f(bob) != 'd' || __builtin_strcmp (bob.toto, "coucoucoucou"))
21 __builtin_abort ();
22 return 0;
23 }