https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119801
Bug ID: 119801 Summary: [15 Regression] Rejects-valid with musttail attribute and -fsanitize=thread Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org Target Milestone: --- int bar (int *); int foo (int *p) { ++*p; [[clang::musttail]] return bar (p); } is accepted by GCC 14 and clang but rejected by GCC 15. Without the attribute, both GCC and clang don't emit a tail call which is reasonable as there is __tsan_func_exit call after the call to bar. For musttail clang emits it before the musttail call instead.