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)7void 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