1 /* PR middle-end/23848 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-optimized" } */
4 /* { dg-require-effective-target alloca } */
5 
6 void bar1 (char *, int);
foo1(int size)7 void foo1 (int size)
8 {
9   char temp[size];
10   temp[size-1] = '\0';
11   bar1 (temp, size);
12 }
13 
14 void bar2 (char *, char *, char *, char *, int);
foo2(int size)15 void foo2 (int size)
16 {
17   char temp[size];
18   temp[size-1] = '\0';
19   {
20     char temp2[size];
21     {
22       char temp3[size];
23       {
24 	char temp4[size];
25 	bar2 (temp, temp2, temp3, temp4, size);
26       }
27     }
28   }
29 }
30 
31 /* { dg-final { scan-tree-dump-not "__builtin_stack_save" "optimized"} } */
32 /* { dg-final { scan-tree-dump-not "__builtin_stack_restore" "optimized"} } */
33