1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-esra-details" } */
3
4 struct S
5 {
6 int i;
7 int j;
8 char c[32]; /* this disables total scalarization */
9 };
10
11 extern struct S bar(void);
12
foo1(int b)13 int foo1 (int b)
14 {
15 struct S s1;
16
17 s1 = bar ();
18 return s1.i;
19 }
20
21 extern struct S *g;
22
foo2(void)23 int foo2 (void)
24 {
25 struct S s2;
26
27 s2 = *g;
28 return s2.i;
29 }
30
31 /* { dg-final { scan-tree-dump-times "Created a replacement for s1" 0 "esra"} } */
32 /* { dg-final { scan-tree-dump-times "Created a replacement for s2" 1 "esra"} } */
33