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 bar (char *, char *, char *, char *, int);
foo(int size)7 void foo (int size)
8 {
9   char temp[size];
10   temp[size-1] = '\0';
11   {
12     char temp2[size];
13     {
14       char temp3[size];
15       {
16 	char temp4[size];
17 	bar (temp, temp2, temp3, temp4, size);
18       }
19     }
20     __asm __volatile ("" : : "r" (&temp[0]), "r" (&temp2[0]) : "memory");
21   }
22 }
23 
24 /* { dg-final { scan-tree-dump-times "__builtin_stack_save" 1 "optimized"} } */
25 /* { dg-final { scan-tree-dump-times "__builtin_stack_restore" 1 "optimized"} } */
26