AaronBallman wrote:

Another concrete reason for why this should default to an error for `_Atomic` 
is https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0943r6.html

In the C++ version of `stdatomic.h`, there's a `#define _Atomic(x) 
std::atomic<x>` which exists for shared header files between C and C++. `enum E 
: std::atomic<int> { Whatever };` is invalid in C++, it would be rather 
surprising for `enum E : _Atomic(int) { Whatever };` to then be valid in C and 
invalid in C++. So we error by default, but still allow users to opt out of the 
error if they find they need to support an `_Atomic` underlying type.

https://github.com/llvm/llvm-project/pull/147802
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to