1 /* { dg-additional-options "-fno-rerun-cse-after-loop -fno-guess-branch-probability -fno-tree-fre" } */
2 /* { dg-require-effective-target alloca } */
3
4 int x;
5
6 void fn2 ();
7 void fn3 ();
8 void fn4 ();
9 void fn5 ();
10 void fn6 ();
11
12 void
13 fn1 (void)
14 {
15 int n;
16 for (n = 0;; ++n) {
17 {
18 struct { char a[n]; } s;
19 fn2 (s);
20 }
21 struct { unsigned a[x]; } s;
22 int i, b;
23 for (i = 0; i < n; ++i)
24 ;
25 fn2 (s);
26 {
27 struct { char a[n]; } s;
28 int i;
29 for (i = 0; i < n; ++i)
30 s.a[i] = i;
31 fn3 (s, s);
32 }
33 fn4 ();
34 {
35 struct { unsigned a[n]; } s;
36 fn5 (s);
37 }
38 {
39 struct { char a[b]; } s;
40 for (; i < n;)
41 s.a[i] = i;
42 fn6 (s);
43 }
44 }
45 }