From efe6efb6f315c7f97be8a850e0a84ff7f6651d85 Mon Sep 17 00:00:00 2001 From: Dhruv Chawla Date: Mon, 26 Aug 2024 11:09:19 +0530 Subject: [PATCH] libstdc++: Add missing feature-test macro in various headers version.syn#2 requires various headers to define __cpp_lib_allocator_traits_is_always_equal. Currently, only was defining this macro. Implement fixes for the other headers as well. Signed-off-by: Dhruv Chawla libstdc++-v3/ChangeLog: * include/std/deque: Define macro __glibcxx_want_allocator_traits_is_always_equal. * include/std/forward_list: Likewise. * include/std/list: Likewise. * include/std/map: Likewise. * include/std/scoped_allocator: Likewise. * include/std/set: Likewise. * include/std/string: Likewise. * include/std/unordered_map: Likewise. * include/std/unordered_set: Likewise. * include/std/vector: Likewise. * testsuite/20_util/headers/memory/version.cc: New test. * testsuite/20_util/scoped_allocator/version.cc: Likewise. * testsuite/21_strings/headers/string/version.cc: Likewise. * testsuite/23_containers/deque/version.cc: Likewise. * testsuite/23_containers/forward_list/version.cc: Likewise. * testsuite/23_containers/list/version.cc: Likewise. * testsuite/23_containers/map/version.cc: Likewise. * testsuite/23_containers/set/version.cc: Likewise. * testsuite/23_containers/unordered_map/version.cc: Likewise. * testsuite/23_containers/unordered_set/version.cc: Likewise. * testsuite/23_containers/vector/version.cc: Likewise. --- libstdc++-v3/include/std/deque | 1 + libstdc++-v3/include/std/forward_list | 1 + libstdc++-v3/include/std/list | 1 + libstdc++-v3/include/std/map | 1 + libstdc++-v3/include/std/scoped_allocator | 3 +++ libstdc++-v3/include/std/set | 1 + libstdc++-v3/include/std/string | 1 + libstdc++-v3/include/std/unordered_map | 1 + libstdc++-v3/include/std/unordered_set | 1 + libstdc++-v3/include/std/vector | 1 + libstdc++-v3/testsuite/20_util/headers/memory/version.cc | 8 ++++++++ .../testsuite/20_util/scoped_allocator/version.cc | 8 ++++++++ .../testsuite/21_strings/headers/string/version.cc | 8 ++++++++ libstdc++-v3/testsuite/23_containers/deque/version.cc | 8 ++++++++ .../testsuite/23_containers/forward_list/version.cc | 8 ++++++++ libstdc++-v3/testsuite/23_containers/list/version.cc | 8 ++++++++ libstdc++-v3/testsuite/23_containers/map/version.cc | 8 ++++++++ libstdc++-v3/testsuite/23_containers/set/version.cc | 8 ++++++++ .../testsuite/23_containers/unordered_map/version.cc | 8 ++++++++ .../testsuite/23_containers/unordered_set/version.cc | 8 ++++++++ libstdc++-v3/testsuite/23_containers/vector/version.cc | 8 ++++++++ 21 files changed, 100 insertions(+) create mode 100644 libstdc++-v3/testsuite/20_util/headers/memory/version.cc create mode 100644 libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc create mode 100644 libstdc++-v3/testsuite/21_strings/headers/string/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/deque/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/forward_list/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/list/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/map/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/set/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/unordered_map/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/unordered_set/version.cc create mode 100644 libstdc++-v3/testsuite/23_containers/vector/version.cc diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque index 0bf8309c19a..69f8c0dcdcc 100644 --- a/libstdc++-v3/include/std/deque +++ b/libstdc++-v3/include/std/deque @@ -68,6 +68,7 @@ #include #include +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_erase_if #define __glibcxx_want_nonmember_container_access #include diff --git a/libstdc++-v3/include/std/forward_list b/libstdc++-v3/include/std/forward_list index 5ac74360808..dfd7d48d121 100644 --- a/libstdc++-v3/include/std/forward_list +++ b/libstdc++-v3/include/std/forward_list @@ -45,6 +45,7 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_erase_if #define __glibcxx_want_incomplete_container_elements #define __glibcxx_want_list_remove_return_type diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list index fce4e3d925b..ff632fc1ab2 100644 --- a/libstdc++-v3/include/std/list +++ b/libstdc++-v3/include/std/list @@ -69,6 +69,7 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_erase_if #define __glibcxx_want_incomplete_container_elements #define __glibcxx_want_list_remove_return_type diff --git a/libstdc++-v3/include/std/map b/libstdc++-v3/include/std/map index 4a96e59a5bc..6520d9f744f 100644 --- a/libstdc++-v3/include/std/map +++ b/libstdc++-v3/include/std/map @@ -69,6 +69,7 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_erase_if #define __glibcxx_want_generic_associative_lookup #define __glibcxx_want_map_try_emplace diff --git a/libstdc++-v3/include/std/scoped_allocator b/libstdc++-v3/include/std/scoped_allocator index dbe7bf3cbf6..532a44691ba 100644 --- a/libstdc++-v3/include/std/scoped_allocator +++ b/libstdc++-v3/include/std/scoped_allocator @@ -43,6 +43,9 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal +#include + namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/std/set b/libstdc++-v3/include/std/set index bf2474c7eb2..95cc8005a19 100644 --- a/libstdc++-v3/include/std/set +++ b/libstdc++-v3/include/std/set @@ -69,6 +69,7 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_erase_if #define __glibcxx_want_generic_associative_lookup #define __glibcxx_want_node_extract diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string index 55144409cca..8db0802a282 100644 --- a/libstdc++-v3/include/std/string +++ b/libstdc++-v3/include/std/string @@ -54,6 +54,7 @@ #include #include +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_constexpr_char_traits #define __glibcxx_want_constexpr_string #define __glibcxx_want_erase_if diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map index ea6129d6494..f9a948c3873 100644 --- a/libstdc++-v3/include/std/unordered_map +++ b/libstdc++-v3/include/std/unordered_map @@ -46,6 +46,7 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_erase_if #define __glibcxx_want_generic_unordered_lookup #define __glibcxx_want_node_extract diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set index a48fe0cd563..aa5b702ff4d 100644 --- a/libstdc++-v3/include/std/unordered_set +++ b/libstdc++-v3/include/std/unordered_set @@ -46,6 +46,7 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_erase_if #define __glibcxx_want_generic_unordered_lookup #define __glibcxx_want_node_extract diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector index a1f7ef86824..906c1627935 100644 --- a/libstdc++-v3/include/std/vector +++ b/libstdc++-v3/include/std/vector @@ -76,6 +76,7 @@ # include #endif +#define __glibcxx_want_allocator_traits_is_always_equal #define __glibcxx_want_constexpr_vector #define __glibcxx_want_erase_if #define __glibcxx_want_incomplete_container_elements diff --git a/libstdc++-v3/testsuite/20_util/headers/memory/version.cc b/libstdc++-v3/testsuite/20_util/headers/memory/version.cc new file mode 100644 index 00000000000..c82c9a018e0 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/headers/memory/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc new file mode 100644 index 00000000000..c5a1b11a739 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/21_strings/headers/string/version.cc b/libstdc++-v3/testsuite/21_strings/headers/string/version.cc new file mode 100644 index 00000000000..a546b75b3fe --- /dev/null +++ b/libstdc++-v3/testsuite/21_strings/headers/string/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/deque/version.cc b/libstdc++-v3/testsuite/23_containers/deque/version.cc new file mode 100644 index 00000000000..09d71cb935d --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/deque/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/version.cc b/libstdc++-v3/testsuite/23_containers/forward_list/version.cc new file mode 100644 index 00000000000..7a0203978f0 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/forward_list/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/list/version.cc b/libstdc++-v3/testsuite/23_containers/list/version.cc new file mode 100644 index 00000000000..3ac63e06d90 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/list/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/map/version.cc b/libstdc++-v3/testsuite/23_containers/map/version.cc new file mode 100644 index 00000000000..31a228d365d --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/map/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/set/version.cc b/libstdc++-v3/testsuite/23_containers/set/version.cc new file mode 100644 index 00000000000..eb49b2353c3 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/set/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/version.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/version.cc new file mode 100644 index 00000000000..946d7c295d5 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/version.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/version.cc new file mode 100644 index 00000000000..d22adfb420e --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif diff --git a/libstdc++-v3/testsuite/23_containers/vector/version.cc b/libstdc++-v3/testsuite/23_containers/vector/version.cc new file mode 100644 index 00000000000..0c8e4150abc --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/vector/version.cc @@ -0,0 +1,8 @@ +// { dg-do preprocess { target c++17 } } +// { dg-add-options no_pch } + +#include + +#if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in " +#endif