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

            Bug ID: 115607
           Summary: missed tail call with large structure size
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64-linux-gnu arm-linux-gnu powerpc{,64}-linux-gnu

Take:
```
typedef struct Foo {
  int a, b, c, d, e, f, g, h;
}Foo;

Foo
callee (int i);

Foo 
caller (int i)
{
  return callee (i + 1);
}
```

This can be tail called but currently we don't.
The issue is tail calls for functions where the structure return is passed via
pointer via register is not tail called.

Reply via email to