https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64883
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Iain Sandoe from comment #4) > hmm .. so cdefs.h does indeed use __attribute__((no return)) and > __attribute__((deprecated)). > > (although both are still valid by GCC documentation) It's valid but the point is that "noreturn" is not a reserved name in any C or POSIX standard, nor in any C++ standard before C++11, so users can reasonably expect to be able to define a macro with that name and not get problems. In order to support such valid usr code system headers should avoid using that name, and should use the __noreturn__ form that is not a valid macro name for users to define. The point of the new test is to ensure libstdc++ itself doesn't contain this kind of bug ... but it fails because darwin has the bug, even though the libstdc++ headers no longer have it. > What about a fixincludes? (not familiar with what level of stuff is feasible > there). I think this could be solved with fixincludes, but that seems like something for stage 1. For now I might just adjust the test to stop it failing.