1 /* A testcase for PR 40744. We do not want to create replacements for object
2 that are dead or have only a single use, whenever it can be avoided
3 simply. */
4 /* { dg-do compile } */
5 /* { dg-options "-O1 -fdump-tree-esra-details" } */
6
7 struct X { int i; int j; };
8
foo(void)9 void foo(void)
10 {
11 struct X x;
12 x.i = 1;
13 x.j = 2;
14 }
15
16
bar(struct X x)17 int bar(struct X x)
18 {
19 return x.i;
20 }
21
22
23 extern void do_something (struct X);
24
bar2(int i,int j)25 void bar2(int i, int j)
26 {
27 struct X x;
28
29 x.i = i;
30 x.j = j;
31 do_something (x);
32 }
33
34 /* { dg-final { scan-tree-dump-times "Created a replacement" 0 "esra"} } */
35