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.

Reply via email to