/* { dg-do run } */ /* { dg-options "-fno-omit-frame-pointer -mapcs-frame -O" } */ extern void abort (void); struct x { int y; int z; }; int __attribute__((noinline)) f (int c, int d, int e, int h, int i) { int a; struct x b; int __attribute__((noinline)) g (int p, int q, int r, struct x s) { return a + p + q + r + s.y + s.z; } a = 5; b.y = h; b.z = i; return g(c, d, e, b); } int main(void) { if (f (1, 2, 3, 4, 5) != 20) abort(); return 0; }