/* A testcase for PR 40744. We do not want to create replacements for object that are dead or have only a single use, whenever it can be avoided simply. */ /* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-esra-details" } */ struct X { int i; int j; }; void foo(void) { struct X x; x.i = 1; x.j = 2; } int bar(struct X x) { return x.i; } extern void do_something (struct X); void bar2(int i, int j) { struct X x; x.i = i; x.j = j; do_something (x); } /* { dg-final { scan-tree-dump-times "Created a replacement" 0 "esra"} } */ /* { dg-final { cleanup-tree-dump "esra" } } */