[clang] [Clang] [C23] Implement N2653: u8 strings are char8_t[] (PR #97208)

Mital Ashok via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 3 06:17:18 PDT 2024


================
@@ -104,6 +107,7 @@ typedef _Atomic(long)               atomic_long;
 typedef _Atomic(unsigned long)      atomic_ulong;
 typedef _Atomic(long long)          atomic_llong;
 typedef _Atomic(unsigned long long) atomic_ullong;
+typedef _Atomic(unsigned char)      atomic_char8_t;
 typedef _Atomic(uint_least16_t)     atomic_char16_t;
 typedef _Atomic(uint_least32_t)     atomic_char32_t;
----------------
MitalAshok wrote:

It seems like this header doesn't properly implement [P0943R6](https://wg21.link/P0943R6) in C++23 (Where `#define _Atomic(T) std::atomic<T>` and all these typedefs should just be `using std::atomic_*`.

So `::atomic_char8_t` should be `std::atomic<char8_t>`, not `std::atomic<unsigned char>` (nor `unsigned char _Atomic`), but that is outside the scope of this PR. I'll just make this match the surrounding typedefs for now.

https://github.com/llvm/llvm-project/pull/97208


More information about the cfe-commits mailing list