Skip to content

Conversation

@philnik777
Copy link
Contributor

This should improve the time it takes to run the test suite a bit. Right now there are only a handful of headers in the modulemap because we're missing a lot of includes in the tests. New headers should be added there from the start, and we should fill up the modulemap over time until it contains all the test support headers.

@philnik777 philnik777 force-pushed the add_test_modulemap branch 2 times, most recently from f06b308 to 0fe5524 Compare October 14, 2025 09:55
@philnik777 philnik777 force-pushed the add_test_modulemap branch 3 times, most recently from b2f4088 to fe667c9 Compare October 22, 2025 11:06
@ldionne ldionne marked this pull request as ready for review November 12, 2025 16:44
@ldionne ldionne requested a review from a team as a code owner November 12, 2025 16:44
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Nov 12, 2025

// inline constexpr unspecified indices = unspecified;

// FIXME: THis test shoudn't define TEST_HAS_NO_INT128
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// FIXME: THis test shoudn't define TEST_HAS_NO_INT128
// FIXME: This test shouldn't define TEST_HAS_NO_INT128

@llvmbot
Copy link
Member

llvmbot commented Nov 12, 2025

@llvm/pr-subscribers-libcxx

Author: Nikolas Klauser (philnik777)

Changes

This should improve the time it takes to run the test suite a bit. Right now there are only a handful of headers in the modulemap because we're missing a lot of includes in the tests. New headers should be added there from the start, and we should fill up the modulemap over time until it contains all the test support headers.


Patch is 31.37 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/162800.diff

53 Files Affected:

  • (modified) libcxx/include/module.modulemap.in (+4-1)
  • (modified) libcxx/test/libcxx/algorithms/alg.modifying.operations/copy_move_unwrap_reverse.pass.cpp (+1)
  • (modified) libcxx/test/libcxx/memory/allocation_guard.pass.cpp (+2)
  • (modified) libcxx/test/libcxx/memory/uninitialized_allocator_copy.pass.cpp (+1)
  • (modified) libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp (+1)
  • (modified) libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp (+1)
  • (modified) libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp (+1)
  • (modified) libcxx/test/std/algorithms/alg.nonmodifying/alg.ends_with/ranges.ends_with.pass.cpp (+2)
  • (modified) libcxx/test/std/algorithms/alg.nonmodifying/alg.starts_with/ranges.starts_with.pass.cpp (+1)
  • (modified) libcxx/test/std/algorithms/alg.sorting/alg.partitions/pstl.is_partitioned.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/dtor_noexcept.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.map/helpers.h (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/dtor_noexcept.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.multimap/helpers.h (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/compare.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_assign.pass.cpp (+2)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/dtor_noexcept.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/dtor_noexcept.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_iterators.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/sequences/vector.bool/assign_move.pass.cpp (+1)
  • (modified) libcxx/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/dtor_noexcept.pass.cpp (+2-1)
  • (modified) libcxx/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp (+1)
  • (modified) libcxx/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp (+1)
  • (modified) libcxx/test/std/numerics/c.math/signbit.pass.cpp (+1)
  • (modified) libcxx/test/std/ranges/range.factories/range.iota.view/indices.pass.cpp (+3)
  • (modified) libcxx/test/std/re/re.results/re.results.const/move.pass.cpp (+3-1)
  • (modified) libcxx/test/std/strings/basic.string/string.cons/dtor.pass.cpp (+3-2)
  • (modified) libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp (+1)
  • (modified) libcxx/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp (+7-6)
  • (modified) libcxx/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp (+6-5)
  • (modified) libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/make_obj_using_allocator.pass.cpp (+1)
  • (modified) libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/uninitialized_construct_using_allocator.pass.cpp (+1)
  • (modified) libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/uses_allocator_construction_args.pass.cpp (+2)
  • (added) libcxx/test/support/module.modulemap (+10)
diff --git a/libcxx/include/module.modulemap.in b/libcxx/include/module.modulemap.in
index 894093b409e11..45950c4141c98 100644
--- a/libcxx/include/module.modulemap.in
+++ b/libcxx/include/module.modulemap.in
@@ -2359,7 +2359,10 @@ module std [system] {
   module hash_table           { header "__hash_table" }
   module node_handle          { header "__node_handle" }
   module split_buffer         { header "__split_buffer" }
-  module tree                 { header "__tree" }
+  module tree                 {
+    header "__tree"
+    export std.memory.unique_ptr
+  }
   module std_mbstate_t {
     header "__std_mbstate_t.h"
     export *
diff --git a/libcxx/test/libcxx/algorithms/alg.modifying.operations/copy_move_unwrap_reverse.pass.cpp b/libcxx/test/libcxx/algorithms/alg.modifying.operations/copy_move_unwrap_reverse.pass.cpp
index 2a85e7b5ddcc3..22444624dcba7 100644
--- a/libcxx/test/libcxx/algorithms/alg.modifying.operations/copy_move_unwrap_reverse.pass.cpp
+++ b/libcxx/test/libcxx/algorithms/alg.modifying.operations/copy_move_unwrap_reverse.pass.cpp
@@ -19,6 +19,7 @@
 #include <cstdint>
 #include <iterator>
 #include <type_traits>
+#include <utility>
 
 #include "test_iterators.h"
 
diff --git a/libcxx/test/libcxx/memory/allocation_guard.pass.cpp b/libcxx/test/libcxx/memory/allocation_guard.pass.cpp
index 493ebf044187c..a7c93972d656d 100644
--- a/libcxx/test/libcxx/memory/allocation_guard.pass.cpp
+++ b/libcxx/test/libcxx/memory/allocation_guard.pass.cpp
@@ -17,6 +17,8 @@
 
 #include <__memory/allocation_guard.h>
 #include <cassert>
+#include <climits>
+#include <memory>
 #include <type_traits>
 #include <utility>
 
diff --git a/libcxx/test/libcxx/memory/uninitialized_allocator_copy.pass.cpp b/libcxx/test/libcxx/memory/uninitialized_allocator_copy.pass.cpp
index 679ee86844687..1d127f947c1da 100644
--- a/libcxx/test/libcxx/memory/uninitialized_allocator_copy.pass.cpp
+++ b/libcxx/test/libcxx/memory/uninitialized_allocator_copy.pass.cpp
@@ -11,6 +11,7 @@
 // ensure that __uninitialized_allocator_copy calls the proper construct and destruct functions
 
 #include <algorithm>
+#include <cassert>
 #include <iterator>
 #include <memory>
 
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp
index 890ac23fff832..8354894493e21 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp
@@ -32,6 +32,7 @@
 
 #include "almost_satisfies_types.h"
 #include "test_iterators.h"
+#include "type_algorithms.h"
 
 struct NotEqualityComparable {};
 
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp
index e696dcdb34351..80f76150318ae 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp
@@ -20,6 +20,7 @@
 #include <algorithm>
 #include <cassert>
 #include <cstddef>
+#include <cstdint>
 #include <vector>
 
 #include "sized_allocator.h"
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp
index 2c1346a743746..9d9d7ed5ab177 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp
@@ -26,6 +26,7 @@
 #include <array>
 #include <cassert>
 #include <cstddef>
+#include <cstdint>
 #include <ranges>
 #include <vector>
 
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.ends_with/ranges.ends_with.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.ends_with/ranges.ends_with.pass.cpp
index 199e6a786e5ba..76c62ffa760ad 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.ends_with/ranges.ends_with.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.ends_with/ranges.ends_with.pass.cpp
@@ -25,8 +25,10 @@
 #include <array>
 #include <chrono>
 #include <ranges>
+
 #include "almost_satisfies_types.h"
 #include "test_iterators.h"
+#include "type_algorithms.h"
 
 using namespace std::chrono;
 
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.starts_with/ranges.starts_with.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.starts_with/ranges.starts_with.pass.cpp
index 0f2284edde81c..172fa82fccc29 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.starts_with/ranges.starts_with.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.starts_with/ranges.starts_with.pass.cpp
@@ -27,6 +27,7 @@
 
 #include "almost_satisfies_types.h"
 #include "test_iterators.h"
+#include "type_algorithms.h"
 
 template <class Iter1, class Sent1 = Iter1, class Iter2 = int*, class Sent2 = Iter2>
 concept HasStartsWithIt = requires(Iter1 first1, Sent1 last1, Iter2 first2, Sent2 last2) {
diff --git a/libcxx/test/std/algorithms/alg.sorting/alg.partitions/pstl.is_partitioned.pass.cpp b/libcxx/test/std/algorithms/alg.sorting/alg.partitions/pstl.is_partitioned.pass.cpp
index a80e2f6ddc637..b64242dfc14b6 100644
--- a/libcxx/test/std/algorithms/alg.sorting/alg.partitions/pstl.is_partitioned.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.sorting/alg.partitions/pstl.is_partitioned.pass.cpp
@@ -20,6 +20,7 @@
 
 #include "test_iterators.h"
 #include "test_execution_policies.h"
+#include "type_algorithms.h"
 
 template <class Iter>
 struct Test {
diff --git a/libcxx/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
index 8497b942ad8eb..c9f7f281391f5 100644
--- a/libcxx/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <map>
 #include <cassert>
+#include <map>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
index 62afae92b6902..c757befb9211c 100644
--- a/libcxx/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <map>
 #include <cassert>
+#include <map>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp
index 987eca0706076..bf5d256e19a0f 100644
--- a/libcxx/test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <set>
 #include <cassert>
+#include <set>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp
index 63c0433477414..a382ce629d284 100644
--- a/libcxx/test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <set>
 #include <cassert>
+#include <set>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp
index 8aa2e7bc539fd..c98803f6cce9d 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp
@@ -12,6 +12,7 @@
 
 // flat_map& operator=(const flat_map& m);
 
+#include <cassert>
 #include <deque>
 #include <flat_map>
 #include <functional>
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/dtor_noexcept.pass.cpp
index 4562b01bc8c42..9e8198443387b 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/dtor_noexcept.pass.cpp
@@ -17,6 +17,7 @@
 #include <flat_map>
 #include <functional>
 #include <vector>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/helpers.h b/libcxx/test/std/containers/container.adaptors/flat.map/helpers.h
index 932f330db829e..445de4fcb6eae 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/helpers.h
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/helpers.h
@@ -15,6 +15,7 @@
 #include <vector>
 #include <flat_map>
 #include <ranges>
+#include <type_traits>
 
 #include "../flat_helpers.h"
 #include "test_allocator.h"
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp
index fd57a1061b615..ed040d5a3625a 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp
@@ -12,6 +12,7 @@
 
 // flat_multimap& operator=(const flat_multimap& m);
 
+#include <cassert>
 #include <deque>
 #include <flat_map>
 #include <functional>
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/dtor_noexcept.pass.cpp
index 104d56755bd76..2534a4748aa76 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/dtor_noexcept.pass.cpp
@@ -16,6 +16,7 @@
 #include <deque>
 #include <flat_map>
 #include <functional>
+#include <type_traits>
 #include <vector>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/helpers.h b/libcxx/test/std/containers/container.adaptors/flat.multimap/helpers.h
index f3edd3b3a0242..ccb3218ebfc41 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/helpers.h
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/helpers.h
@@ -15,6 +15,7 @@
 #include <vector>
 #include <flat_map>
 #include <ranges>
+#include <type_traits>
 
 #include "../flat_helpers.h"
 #include "test_allocator.h"
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/compare.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/compare.pass.cpp
index 6b68589e6814f..867de2d83fc34 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/compare.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/compare.pass.cpp
@@ -14,6 +14,7 @@
 // template <class Alloc>
 //   flat_multiset(const key_compare& comp, const Alloc& a);
 
+#include <cassert>
 #include <deque>
 #include <flat_set>
 #include <functional>
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_assign.pass.cpp
index 2b6176ac915a7..3f211d683456d 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_assign.pass.cpp
@@ -13,8 +13,10 @@
 // flat_multiset& operator=(const flat_multiset& m);
 
 #include <algorithm>
+#include <cassert>
 #include <flat_set>
 #include <functional>
+#include <utility>
 #include <vector>
 
 #include "operator_hijacker.h"
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/dtor_noexcept.pass.cpp
index f852f2f85572c..224ac0f92b515 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/dtor_noexcept.pass.cpp
@@ -16,6 +16,7 @@
 #include <deque>
 #include <flat_set>
 #include <functional>
+#include <type_traits>
 #include <vector>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.pass.cpp
index 59caa9c1f8a48..33fe457d7c1e3 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.pass.cpp
@@ -13,6 +13,7 @@
 // flat_set& operator=(const flat_set& m);
 
 #include <algorithm>
+#include <cassert>
 #include <deque>
 #include <flat_set>
 #include <functional>
diff --git a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/dtor_noexcept.pass.cpp
index 810b13b0a5b0b..1caf58fff72d3 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/dtor_noexcept.pass.cpp
@@ -16,6 +16,7 @@
 #include <deque>
 #include <flat_set>
 #include <functional>
+#include <type_traits>
 #include <vector>
 
 #include "test_macros.h"
diff --git a/libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_iterators.pass.cpp b/libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_iterators.pass.cpp
index 5981f9189dbfb..afd5a63895b80 100644
--- a/libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_iterators.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/stack/stack.cons/ctor_iterators.pass.cpp
@@ -15,6 +15,7 @@
 
 #include <cassert>
 #include <stack>
+#include <type_traits>
 
 #include "test_allocator.h"
 
diff --git a/libcxx/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp b/libcxx/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp
index 5de5579d13067..e927bfc83aea4 100644
--- a/libcxx/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp
+++ b/libcxx/test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp
@@ -13,6 +13,7 @@
 //   belonging to the container being moved. Such move construction of the
 //   allocator shall not exit via an exception.
 
+#include <cassert>
 #include <vector>
 #include <deque>
 #include <list>
diff --git a/libcxx/test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
index f0a839484f9dc..338a0fa6b832d 100644
--- a/libcxx/test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <deque>
 #include <cassert>
+#include <deque>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
index 64c60af1fdcb7..8d474cf966339 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <forward_list>
 #include <cassert>
+#include <forward_list>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
index 44e6ddd722a70..4ebe19fafef29 100644
--- a/libcxx/test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <list>
 #include <cassert>
+#include <list>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "MoveOnly.h"
diff --git a/libcxx/test/std/containers/sequences/vector.bool/assign_move.pass.cpp b/libcxx/test/std/containers/sequences/vector.bool/assign_move.pass.cpp
index 8791380b134c7..2200367fb27f7 100644
--- a/libcxx/test/std/containers/sequences/vector.bool/assign_move.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector.bool/assign_move.pass.cpp
@@ -14,6 +14,7 @@
 // vector& operator=(vector&& c);
 
 #include <cassert>
+#include <utility>
 #include <vector>
 
 #include "min_allocator.h"
diff --git a/libcxx/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp
index 0801709625090..a95d358248f56 100644
--- a/libcxx/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp
@@ -16,8 +16,9 @@
 // For vector<>, this was added to the standard by N4258,
 //   but vector<bool> was not changed.
 
-#include <vector>
 #include <cassert>
+#include <vector>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "test_allocator.h"
diff --git a/libcxx/test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
index f8f3c76f8c3d9..6a6ca6b36ce5d 100644
--- a/libcxx/test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp
@@ -12,8 +12,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <vector>
 #include <cassert>
+#include <vector>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "test_allocator.h"
diff --git a/libcxx/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
index 5a69213c3b4ef..e5add73b167d0 100644
--- a/libcxx/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
@@ -17,8 +17,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <vector>
 #include <cassert>
+#include <vector>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "test_allocator.h"
diff --git a/libcxx/test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
index d0d231f48953a..5bdae01f871f9 100644
--- a/libcxx/test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp
@@ -15,8 +15,9 @@
 
 // UNSUPPORTED: c++03
 
-#include <vector>
 #include <cassert>
+#include <vector>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "test_allocator.h"
diff --git a/libcxx/test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp
index 4a7e2cf445676..331b360c2fa1d 100644
--- a/libcxx/test/std/containers/sequences/vector/vector.con...
[truncated]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants