Stop exposing the C11 _Atomic() macro in <sys/cdefs.h>, when compiling

for C++.  It clashes with the one in libc++'s <atomic> header.

(Previously, the _Atomic() macro was defined in <stdatomic.h>, which is
only for use with C11, but for various reasons it was moved to its
current location in r251804.)

Discussed with:	bdrewery, ed
MFC after:	2 weeks
This commit is contained in:
Dimitry Andric 2016-05-29 17:32:19 +00:00
parent 696c3895ae
commit 4a8240ec66

View File

@ -275,7 +275,8 @@
#define _Alignof(x) __alignof(x) #define _Alignof(x) __alignof(x)
#endif #endif
#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic) #if !defined(__cplusplus) && !__has_extension(c_atomic) && \
!__has_extension(cxx_atomic)
/* /*
* No native support for _Atomic(). Place object in structure to prevent * No native support for _Atomic(). Place object in structure to prevent
* most forms of direct non-atomic access. * most forms of direct non-atomic access.