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