111
|
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);
|
|
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"} } */
|