/* PR ipa/121023 */ /* { dg-do compile { target musttail } } */ /* { dg-options "-O2" } */ struct S { int a, b; }; [[gnu::noipa]] int foo (struct S x, int y, int z) { return x.a + y + z; } [[gnu::noinline]] static int bar (struct S x, int y, int z) { [[gnu::musttail]] return foo ((struct S) { x.a, 0 }, y, 1); } int baz (int x) { return bar ((struct S) { 1, 2 }, x, 2) + bar ((struct S) { 2, 3 }, x + 1, 2); }