https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119615
Bug ID: 119615 Summary: Divergence with Clang on musttail (differing tailcall target signature) Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: sjames at gcc dot gnu.org Target Milestone: --- For the following (gnarly reduction from PR119614): ``` char *h() { return 0; } const char *p(int) { [[clang::musttail]] return h(); } ``` We accept it, while Clang rejects it with: ``` a.cxx:6:23: error: cannot perform a tail call to function 'h' because its signature is incompatible with the calling function 6 | [[clang::musttail]] return h(); | ^ a.cxx:1:1: note: target function has different number of parameters (expected 1 but has 0) 1 | char *h() { | ^ a.cxx:6:5: note: tail call required by 'musttail' attribute here 6 | [[clang::musttail]] return h(); | ^ 1 error generated. ```