/* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-esra-details" } */ struct S { int i; int j; char c[32]; /* this disables total scalarization */ }; extern struct S bar(void); int foo1 (int b) { struct S s1; s1 = bar (); return s1.i; } extern struct S *g; int foo2 (void) { struct S s2; s2 = *g; return s2.i; } /* { dg-final { scan-tree-dump-times "Created a replacement for s1" 0 "esra"} } */ /* { dg-final { scan-tree-dump-times "Created a replacement for s2" 1 "esra"} } */ /* { dg-final { cleanup-tree-dump "esra" } } */