Tested x86_64-pc-linux-gnu, OK for trunk?
-- 8< --
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 situation is odd, I don't know what's going on
with that error. I'm happy to separate that change from the others if
desired.
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>.
---
.../testsuite/util/testsuite_allocator.h | 8 ++++----
.../testsuite/util/testsuite_common_types.h | 16 ++++++++--------
.../testsuite/util/testsuite_containers.h | 4 ++--
libstdc++-v3/testsuite/util/testsuite_error.h | 7 ++++---
.../testsuite/util/testsuite_greedy_ops.h | 2 ++
.../testsuite/util/testsuite_iterators.h | 5 ++++-
.../testsuite/util/testsuite_new_operators.h | 1 +
libstdc++-v3/testsuite/util/testsuite_random.h | 1 +
8 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h
b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index 086685b4ac6..3367b1b1e31 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 cd36a2006a4..98c0f539505 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 ab0107f79e4..4021585e441 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 5295d60b7be..03b09ee036f 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 3545848c8be..9103fcb2257 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 41fbcaad366..77e8e4b55e5 100644
--- a/libstdc++-v3/testsuite/util/testsuite_iterators.h
+++ b/libstdc++-v3/testsuite/util/testsuite_iterators.h
@@ -31,7 +31,10 @@
#include <bits/stl_iterator_base_types.h>
#if __cplusplus >= 201103L
-#include <bits/move.h>
+// ??? this was <bits/move.h>, but then #including <memory> after this header
+// in 20_util/specialized_algorithms/uninitialized_copy/constrained.cc broke
+// with a mysterious "no match for operator<" between long and difference_type.
+#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 bf0dab88b5b..3e372b8066e 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 533be4fc29b..68968ae90b0 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
base-commit: 577c0f4a402bfb99d9770e3a90556a3946cb0e18
prerequisite-patch-id: d5644f7f10210e1e4435b13725800bfa8954c61a
prerequisite-patch-id: 5a7543abf6c96d2fac464d236225f883414d954f
prerequisite-patch-id: d37eefb39bebaff0f5d54582d3d53086c7d1fe76
prerequisite-patch-id: 01b81f59adfbd2c4c1448272735412efab6893ba
prerequisite-patch-id: bf869efe800bf0c09d27d62fb8e38468a5f2c7e9
prerequisite-patch-id: de21622412d661aca06c1a87f9a5d5bd0bb9712f
prerequisite-patch-id: 2bbb5f7c257bc9597c118262800fbab41234251b
prerequisite-patch-id: 418cff75ec8976f3744371910f271404eb42d32f
prerequisite-patch-id: d4b1f428e5e0ef735ac025cdc8b3e57a749aebc2
--
2.51.0