diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-11-20 21:39:58 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-11-21 15:58:21 +0000 |
commit | 43626143c9d4411353709bab09631d267bb4dadd (patch) | |
tree | 3e50a262d6063fd111b70a95675e86f98c4485f8 /libstdc++-v3/testsuite/23_containers | |
parent | 1fa85dcf656e2f2c7e483c9ed3c2680bf7db6858 (diff) | |
download | gcc-43626143c9d4411353709bab09631d267bb4dadd.zip gcc-43626143c9d4411353709bab09631d267bb4dadd.tar.gz gcc-43626143c9d4411353709bab09631d267bb4dadd.tar.bz2 |
libstdc++: Add freestanding feature test macros (P2407R5)
This C++26 change makes several classes "partially freestanding", but we
already fully supported them in freestanding mode. All we need to do is
define the new feature test macros and add tests for them.
libstdc++-v3/ChangeLog:
* include/bits/version.def (freestanding_algorithm)
(freestanding_array, freestanding_optional)
(freestanding_string_view, freestanding_variant): Add.
* include/bits/version.h: Regenerate.
* include/std/algorithm (__glibcxx_want_freestanding_algorithm):
Define.
* include/std/array (__glibcxx_want_freestanding_array):
Define.
* include/std/optional (__glibcxx_want_freestanding_optional):
Define.
* include/std/string_view
(__glibcxx_want_freestanding_string_view): Define.
* include/std/variant (__glibcxx_want_freestanding_variant):
Define.
* testsuite/20_util/optional/version.cc: Add checks for
__cpp_lib_freestanding_optional.
* testsuite/20_util/variant/version.cc: Add checks for
__cpp_lib_freestanding_variant.
* testsuite/23_containers/array/tuple_interface/get_neg.cc:
Adjust dg-error line numbers.
* testsuite/21_strings/basic_string_view/requirements/version.cc:
New test.
* testsuite/23_containers/array/requirements/version.cc: New
test.
* testsuite/25_algorithms/fill_n/requirements/version.cc: New
test.
* testsuite/25_algorithms/swap_ranges/requirements/version.cc:
New test.
Diffstat (limited to 'libstdc++-v3/testsuite/23_containers')
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/array/requirements/version.cc | 19 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc | 6 |
2 files changed, 22 insertions, 3 deletions
diff --git a/libstdc++-v3/testsuite/23_containers/array/requirements/version.cc b/libstdc++-v3/testsuite/23_containers/array/requirements/version.cc new file mode 100644 index 0000000..1930805 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/array/requirements/version.cc @@ -0,0 +1,19 @@ +// { dg-do preprocess { target c++23 } } +// { dg-add-options no_pch } + +#include <array> + +#ifndef __cpp_lib_freestanding_array +# error "Feature test macro for freestanding std::array is missing in <array>" +#elif __cpp_lib_freestanding_array < 202311L +# error "Feature test macro for freestanding std::array has wrong value in <array>" +#endif + +#undef __cpp_lib_freestanding_array +#include <version> + +#ifndef __cpp_lib_freestanding_array +# error "Feature test macro for freestanding std::array is missing in <version>" +#elif __cpp_lib_freestanding_array < 202311L +# error "Feature test macro for freestanding std::array has wrong value in <version>" +#endif diff --git a/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc b/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc index bf64d29..e1c92f85 100644 --- a/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc @@ -26,6 +26,6 @@ int n1 = std::get<1>(a); int n2 = std::get<1>(std::move(a)); int n3 = std::get<1>(ca); -// { dg-error "static assertion failed" "" { target *-*-* } 391 } -// { dg-error "static assertion failed" "" { target *-*-* } 400 } -// { dg-error "static assertion failed" "" { target *-*-* } 409 } +// { dg-error "static assertion failed" "" { target *-*-* } 392 } +// { dg-error "static assertion failed" "" { target *-*-* } 401 } +// { dg-error "static assertion failed" "" { target *-*-* } 410 } |