https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119614

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Reduced testcase:

volatile int v;

[[gnu::noinline]] const char *
foo (int x)
{
  v += x;
  return 0;
}

const char *
bar (int x)
{
  if (x == 42)
    [[gnu::musttail]] return foo (42);
  [[gnu::musttail]] return foo (32);
}

const char *
baz (int x)
{
  if (x == 5)
    return foo (42);
  return foo (32);
}

Guess I need to extend my hack to work also on pointer singletons and maybe
floating point values as well.

Reply via email to