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