| /* { 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"} } */ |