https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89864
Iain Sandoe <iains at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #46110|0 |1
is obsolete| |
--- Comment #68 from Iain Sandoe <iains at gcc dot gnu.org> ---
Created attachment 46176
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46176&action=edit
revised fixincludes patch.
So I have an answer about the language implications.
Any C++ program containing _Atomic is using a reserved identifier, and so is
"ill-formed no diagnostic required", per [lex.name]/3
Therefore, it's standards-conforming for a [C++] implementation to make such
identifiers keywords (as GCC does for __attribute__, for example)
Apparently, this is intentional extension and is only one of a longer list of
such keywords that clang++ accepts.
====
Since, according to the discussion above, this is not a bug in the compiler but
rather in using a non-portable extension, perhaps we should not expect any
change to the headers.
====
The patch attached include the generated files, and I'd be grateful if folks
would test it (right now I have limited access to Darwin test boxen, but it
seems to DTRT for me) - I will post to @patches, but leave commit until it's
confirmed that it's working.