Tested powerpc64le-linux (and smoke tested with clang), pushed to trunk.
There is code that only expects to be compiled with clang++ and uses its <stdatomic.h>, which works because Clang supports the _Atomic specifier in C++. The addition of <stdatomic.h> to libstdc++ broke this code, as now it finds the C++ header instead, which is empty for any standard mode before C++23. This change allows that code to keep working as before, by forwarding to clang's <stdatomic.h>. libstdc++-v3/ChangeLog: * include/c_compatibility/stdatomic.h [__clang__]: Use #include_next <stdatomic.h>. --- libstdc++-v3/include/c_compatibility/stdatomic.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libstdc++-v3/include/c_compatibility/stdatomic.h b/libstdc++-v3/include/c_compatibility/stdatomic.h index 852574bd87c..95c72615b4e 100644 --- a/libstdc++-v3/include/c_compatibility/stdatomic.h +++ b/libstdc++-v3/include/c_compatibility/stdatomic.h @@ -120,5 +120,7 @@ using std::atomic_flag_clear_explicit; using std::atomic_thread_fence; using std::atomic_signal_fence; +#elif defined __clang__ +# include_next <stdatomic.h> #endif // C++23 #endif // _GLIBCXX_STDATOMIC_H -- 2.34.1