Tested x86_64-linux. Pushed to trunk. -- >8 --
I noticed that our C++23 features were not being defined when using Clang 16 with -std=c++2b, because it only defines __cplusplus=202101L but <bits/version.h> uses 202302L since my r14-3252-g0c316669b092fb change. This changes <bits/version.h> to use 202100 instead of the final 202302 value so that we support Clang 16's -std=c++2b mode. libstdc++-v3/ChangeLog: * include/bits/version.def (stds): Use >= 202100 for C++23 condition. * include/bits/version.h: Regenerate. * include/std/thread: Use > C++20 instead of >= C++23 for __cplusplus condition. --- libstdc++-v3/include/bits/version.def | 2 +- libstdc++-v3/include/bits/version.h | 76 +++++++++++++-------------- libstdc++-v3/include/std/thread | 2 +- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def index 8f008f9048f..2aab9426ecc 100644 --- a/libstdc++-v3/include/bits/version.def +++ b/libstdc++-v3/include/bits/version.def @@ -1640,7 +1640,7 @@ stds[11] = ">= 201103L"; stds[14] = ">= 201402L"; stds[17] = ">= 201703L"; stds[20] = ">= 202002L"; -stds[23] = ">= 202302L"; +stds[23] = ">= 202100L"; // Should be 202302L but Clang 16 uses 202101L stds[26] = "> 202302L"; // TODO: update when finalized // Local Variables: diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread index c182a4d56c1..39042d7cdf5 100644 --- a/libstdc++-v3/include/std/thread +++ b/libstdc++-v3/include/std/thread @@ -42,7 +42,7 @@ # include <stop_token> // std::stop_source, std::stop_token, std::nostopstate #endif -#if __cplusplus >= 202302L +#if __cplusplus > 202002L # include <format> #endif -- 2.41.0