https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116545
--- Comment #5 from Andi Kleen <andi-gcc at firstfloor dot org> --- Something like this untested patch would likely also fix the test case: diff --git a/gcc/c-family/c-lex.cc b/gcc/c-family/c-lex.cc index e450c9a57f0..e1f78431210 100644 --- a/gcc/c-family/c-lex.cc +++ b/gcc/c-family/c-lex.cc @@ -410,8 +410,10 @@ c_common_has_attribute (cpp_reader *pfile, bool std_syntax) } else { + if (is_attribute_p ("musttail", attr_name)) + result = 0; /* Some standard attributes need special handling. */ - if (c_dialect_cxx ()) + else if (c_dialect_cxx ()) { if (is_attribute_p ("noreturn", attr_name)) result = 200809;