| // { dg-do compile { target c++17 } } | |
| // { dg-require-effective-target hosted } | |
| // { dg-add-options no_pch } | |
| #include <version> | |
| #ifndef __cpp_lib_constexpr_string | |
| # error "Feature-test macro for constexpr std::string missing in <version>" | |
| #endif | |
| #if __cplusplus == 201703L | |
| # if __cpp_lib_constexpr_string != 201611L | |
| # error "Feature-test macro for constexpr std::string has wrong value for C++17 in <version>" | |
| # endif | |
| #endif | |
| #if __cplusplus == 202002L | |
| # if _GLIBCXX_USE_CXX11_ABI | |
| # if __cpp_lib_constexpr_string != 201907L | |
| # error "Feature-test macro for constexpr std::string has wrong value for C++20 in <version>" | |
| # endif | |
| # else // COW strings | |
| # if __cpp_lib_constexpr_string != 201811L | |
| # error "Feature-test macro for constexpr std::string has wrong value for C++20 in <version>" | |
| # endif | |
| # endif | |
| #endif | |
| #if __cplusplus > 202302L | |
| # if _GLIBCXX_USE_CXX11_ABI | |
| # if __cpp_lib_constexpr_string != 202511L | |
| # error "Feature-test macro for constexpr std::string has wrong value for C++20 in <version>" | |
| # endif | |
| # else // COW strings | |
| # if __cpp_lib_constexpr_string != 201811L | |
| # error "Feature-test macro for constexpr std::string has wrong value for C++20 in <version>" | |
| # endif | |
| # endif | |
| #endif |