https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89864
--- Comment #79 from fink at snaggledworks dot com --- (In reply to Iain Sandoe from comment #68) > Created attachment 46176 [details] > 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. A little late to the party, but this revised patch worked for me on 10.4.4/Xcode10.2 with gcc8.3.0, gcc7.4.0, and gcc6.5.0. fftw3-3.3.8 built and passed all tests against the patched gcc8 and gcc7. cernlib built against the patched gcc6.