| /* { dg-do run } */ | |
| /* { dg-options "-fno-tree-sra" } */ | |
| struct S {int x, y, makemelarge[5];}; | |
| S __attribute__((noinline)) f (S &s) { | |
| S r; | |
| r.x = s.y; | |
| r.y = s.x; | |
| return r; | |
| } | |
| int __attribute__((noinline)) glob (int a, int b) | |
| { | |
| S local = { a, b }; | |
| local = f (local); | |
| return local.y; | |
| } | |
| extern "C" void abort (void); | |
| int main (void) | |
| { | |
| if (glob (1, 3) != 1) | |
| abort (); | |
| return 0; | |
| } | |