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

            Bug ID: 96776
           Summary: Missing tail call optimization when passing local
                    variable by reference to yet another function
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mizvekov at gmail dot com
  Target Milestone: ---

Compiler explorer workspace showing the problem: https://godbolt.org/z/z8W74T

Calling `foo` with reference to local should not prevent tail calling `cont` in
this case.

Code for reference:

```
extern void foo(const int &) noexcept;
extern void cont() noexcept;
void test(int a) noexcept {
        foo(a);
        return cont();
}
```

Reply via email to