https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120871
Bug ID: 120871 Summary: missing tail call optimization on RVO Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: rockeet at gmail dot com Target Milestone: --- struct Slice { const char* data; unsigned long size; ~Slice(); }; Slice get_s_impl(); Slice get_s() { return get_s_impl(); } g++ produces: get_s(): push rbx mov rbx, rdi call get_s_impl() mov rax, rbx pop rbx ret icc recognized tail call and produces: get_s(): ..B1.1: # Preds ..B1.0 jmp get_s_impl() #7.24 clang also missed such tail call optimization.