https://gcc.gnu.org/g:359d48af204f1ff4cf1a7969bbeecbdc0b9ba066
commit r16-5355-g359d48af204f1ff4cf1a7969bbeecbdc0b9ba066 Author: Jason Merrill <[email protected]> Date: Mon Nov 17 21:26:40 2025 +0530 libstdc++: testsuite/util adjustments for import std In my import std testing patch, to work around c++/99000 (include after import) I move #includes of the util/ headers above the import. And so I made some adjustments to those headers to support this: adding some missing dependencies, making sure that in headers that include both importable and non-importable headers, at least one importable header comes first to work with my patch to translate e.g. #include <vector> to import <bits/stdc++.h>. The testsuite_iterators.h avoids a failure in 20_util/specialized_algorithms/uninitialized_copy/constrained.cc from including <memory> after this header, with a mysterious "no match for operator<" between long and difference_type. libstdc++-v3/ChangeLog: * testsuite/util/testsuite_allocator.h: Move importable headers up. * testsuite/util/testsuite_common_types.h: Likewise. * testsuite/util/testsuite_containers.h: Likewise. * testsuite/util/testsuite_error.h: Move includes inside include guard. * testsuite/util/testsuite_greedy_ops.h: #include <cstddef>. * testsuite/util/testsuite_iterators.h: #include <utility>. * testsuite/util/testsuite_new_operators.h: #include <cstdlib>. * testsuite/util/testsuite_random.h: #include <random>. Diff: --- libstdc++-v3/testsuite/util/testsuite_allocator.h | 8 ++++---- libstdc++-v3/testsuite/util/testsuite_common_types.h | 16 ++++++++-------- libstdc++-v3/testsuite/util/testsuite_containers.h | 4 ++-- libstdc++-v3/testsuite/util/testsuite_error.h | 7 ++++--- libstdc++-v3/testsuite/util/testsuite_greedy_ops.h | 2 ++ libstdc++-v3/testsuite/util/testsuite_iterators.h | 2 +- libstdc++-v3/testsuite/util/testsuite_new_operators.h | 1 + libstdc++-v3/testsuite/util/testsuite_random.h | 1 + 8 files changed, 23 insertions(+), 18 deletions(-) diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h index 086685b4ac6d..3367b1b1e319 100644 --- a/libstdc++-v3/testsuite/util/testsuite_allocator.h +++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h @@ -26,14 +26,14 @@ #ifndef _GLIBCXX_TESTSUITE_ALLOCATOR_H #define _GLIBCXX_TESTSUITE_ALLOCATOR_H -#include <bits/move.h> -#include <ext/pointer.h> -#include <ext/alloc_traits.h> -#include <testsuite_hooks.h> #if __cplusplus >= 201703L # include <memory_resource> # include <new> #endif +#include <bits/move.h> +#include <ext/pointer.h> +#include <ext/alloc_traits.h> +#include <testsuite_hooks.h> #if __cplusplus >= 201103L # include <unordered_map> diff --git a/libstdc++-v3/testsuite/util/testsuite_common_types.h b/libstdc++-v3/testsuite/util/testsuite_common_types.h index cd36a2006a4c..98c0f5395052 100644 --- a/libstdc++-v3/testsuite/util/testsuite_common_types.h +++ b/libstdc++-v3/testsuite/util/testsuite_common_types.h @@ -22,14 +22,6 @@ #ifndef _TESTSUITE_COMMON_TYPES_H #define _TESTSUITE_COMMON_TYPES_H 1 -#include <ext/typelist.h> - -#include <ext/new_allocator.h> -#include <ext/malloc_allocator.h> -#include <ext/mt_allocator.h> -#include <ext/bitmap_allocator.h> -#include <ext/pool_allocator.h> - #include <algorithm> #include <vector> @@ -53,6 +45,14 @@ namespace unord = std; namespace unord = std::tr1; #endif +#include <ext/typelist.h> + +#include <ext/new_allocator.h> +#include <ext/malloc_allocator.h> +#include <ext/mt_allocator.h> +#include <ext/bitmap_allocator.h> +#include <ext/pool_allocator.h> + namespace __gnu_test { using __gnu_cxx::typelist::null_type; diff --git a/libstdc++-v3/testsuite/util/testsuite_containers.h b/libstdc++-v3/testsuite/util/testsuite_containers.h index ab0107f79e44..4021585e4415 100644 --- a/libstdc++-v3/testsuite/util/testsuite_containers.h +++ b/libstdc++-v3/testsuite/util/testsuite_containers.h @@ -20,10 +20,10 @@ #ifndef _GLIBCXX_TESTSUITE_CONTAINERS_H #define _GLIBCXX_TESTSUITE_CONTAINERS_H -#include <bits/boost_concept_check.h> #include <cassert> -#include <testsuite_container_traits.h> #include <utility> // for rel_ops. +#include <bits/boost_concept_check.h> +#include <testsuite_container_traits.h> // Container requirement testing. namespace __gnu_test diff --git a/libstdc++-v3/testsuite/util/testsuite_error.h b/libstdc++-v3/testsuite/util/testsuite_error.h index 5295d60b7be7..03b09ee036ff 100644 --- a/libstdc++-v3/testsuite/util/testsuite_error.h +++ b/libstdc++-v3/testsuite/util/testsuite_error.h @@ -19,12 +19,13 @@ // <http://www.gnu.org/licenses/>. // -#include <string> -#include <testsuite_hooks.h> - #ifndef _TESTSUITE_ERROR_H #define _TESTSUITE_ERROR_H 1 +#include <string> +#include <system_error> +#include <testsuite_hooks.h> + namespace __gnu_test { struct test_category : public std::error_category diff --git a/libstdc++-v3/testsuite/util/testsuite_greedy_ops.h b/libstdc++-v3/testsuite/util/testsuite_greedy_ops.h index 3545848c8be4..9103fcb22575 100644 --- a/libstdc++-v3/testsuite/util/testsuite_greedy_ops.h +++ b/libstdc++-v3/testsuite/util/testsuite_greedy_ops.h @@ -15,6 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +#include <cstddef> + namespace greedy_ops { struct X diff --git a/libstdc++-v3/testsuite/util/testsuite_iterators.h b/libstdc++-v3/testsuite/util/testsuite_iterators.h index 41fbcaad366a..70383b8fde90 100644 --- a/libstdc++-v3/testsuite/util/testsuite_iterators.h +++ b/libstdc++-v3/testsuite/util/testsuite_iterators.h @@ -31,7 +31,7 @@ #include <bits/stl_iterator_base_types.h> #if __cplusplus >= 201103L -#include <bits/move.h> +#include <utility> #endif #if __cplusplus > 201703L diff --git a/libstdc++-v3/testsuite/util/testsuite_new_operators.h b/libstdc++-v3/testsuite/util/testsuite_new_operators.h index bf0dab88b5b8..3e372b8066e7 100644 --- a/libstdc++-v3/testsuite/util/testsuite_new_operators.h +++ b/libstdc++-v3/testsuite/util/testsuite_new_operators.h @@ -23,6 +23,7 @@ #define _GLIBCXX_TESTSUITE_NEW_OPERATORS_H #include <new> +#include <cstdlib> #include <testsuite_hooks.h> namespace __gnu_test diff --git a/libstdc++-v3/testsuite/util/testsuite_random.h b/libstdc++-v3/testsuite/util/testsuite_random.h index 533be4fc29b2..68968ae90b05 100644 --- a/libstdc++-v3/testsuite/util/testsuite_random.h +++ b/libstdc++-v3/testsuite/util/testsuite_random.h @@ -27,6 +27,7 @@ #include <cmath> #include <initializer_list> #include <system_error> +#include <random> #include <testsuite_hooks.h> namespace __gnu_test
