[libcxx-commits] [libcxx] 7afa159 - [libc++] Avoid including <tuple> in compressed_pair.h

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Sun Sep 18 01:49:43 PDT 2022


Author: Nikolas Klauser
Date: 2022-09-18T10:49:35+02:00
New Revision: 7afa1598a38103f9b940f219d7c2bef578139e94

URL: https://github.com/llvm/llvm-project/commit/7afa1598a38103f9b940f219d7c2bef578139e94
DIFF: https://github.com/llvm/llvm-project/commit/7afa1598a38103f9b940f219d7c2bef578139e94.diff

LOG: [libc++] Avoid including <tuple> in compressed_pair.h

compressed_pair is widely used in the library, but most of the uses don't use the tuple parts. To avoid including <tuple> everywhere, use the forward declaration instead in compressed_pair.h

Reviewed By: ldionne, #libc

Spies: libcxx-commits

Differential Revision: https://reviews.llvm.org/D133331

Added: 
    

Modified: 
    libcxx/include/__memory/compressed_pair.h
    libcxx/include/__string/char_traits.h
    libcxx/include/functional
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
    libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp
    libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp
    libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/bind_return_type.pass.cpp
    libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/specialization.pass.cpp
    libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isplace/specialization.pass.cpp
    libcxx/test/std/utilities/function.objects/func.identity/identity.pass.cpp
    libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.verify.cpp
    libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
    libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
    libcxx/test/std/utilities/function.objects/range.cmp/equal_to.pass.cpp
    libcxx/test/std/utilities/function.objects/range.cmp/greater.pass.cpp
    libcxx/test/std/utilities/function.objects/range.cmp/greater_equal.pass.cpp
    libcxx/test/std/utilities/function.objects/range.cmp/less.pass.cpp
    libcxx/test/std/utilities/function.objects/range.cmp/less_equal.pass.cpp
    libcxx/test/std/utilities/function.objects/range.cmp/not_equal_to.pass.cpp
    libcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp
    libcxx/test/support/container_test_types.h

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__memory/compressed_pair.h b/libcxx/include/__memory/compressed_pair.h
index 7346c8d78d9c..9dd42f8d6eb6 100644
--- a/libcxx/include/__memory/compressed_pair.h
+++ b/libcxx/include/__memory/compressed_pair.h
@@ -11,10 +11,13 @@
 #define _LIBCPP___MEMORY_COMPRESSED_PAIR_H
 
 #include <__config>
+#include <__fwd/get.h>
+#include <__fwd/tuple.h>
+#include <__tuple/tuple_indices.h>
 #include <__type_traits/dependent_type.h>
 #include <__utility/forward.h>
 #include <__utility/move.h>
-#include <tuple> // needed in c++03 for some constructors
+#include <__utility/piecewise_construct.h>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__string/char_traits.h b/libcxx/include/__string/char_traits.h
index a35642bcbdc5..6fbd0e1ab369 100644
--- a/libcxx/include/__string/char_traits.h
+++ b/libcxx/include/__string/char_traits.h
@@ -14,15 +14,15 @@
 #include <__algorithm/find_end.h>
 #include <__algorithm/find_first_of.h>
 #include <__algorithm/min.h>
+#include <__compare/ordering.h>
 #include <__config>
 #include <__functional/hash.h>
 #include <__iterator/iterator_traits.h>
-#include <compare>
+#include <__type_traits/is_constant_evaluated.h>
+#include <cstddef>
 #include <cstdint>
 #include <cstdio>
-#include <cstring>
 #include <iosfwd>
-#include <type_traits>
 
 #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
 #   include <cwchar> // for wmemcpy

diff  --git a/libcxx/include/functional b/libcxx/include/functional
index ab2c62ddda4c..4c4e02dd702b 100644
--- a/libcxx/include/functional
+++ b/libcxx/include/functional
@@ -534,7 +534,6 @@ POLICY:  For non-variadic implementations, the number of arguments is limited
 #include <concepts>
 #include <exception>
 #include <memory> // TODO: find out why removing this breaks the modules build
-#include <tuple>
 #include <type_traits>
 #include <typeinfo>
 #include <version>
@@ -544,6 +543,7 @@ POLICY:  For non-variadic implementations, the number of arguments is limited
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <tuple>
 #  include <utility>
 #endif
 

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
index af06e12efc9d..53858f0bed9e 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
@@ -1,7 +1,5 @@
 bit
 climits
-cmath
-compare
 concepts
 cstddef
 cstdint
@@ -12,6 +10,5 @@ initializer_list
 iosfwd
 limits
 new
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
index 626b4a41fe97..49feb6821f20 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
@@ -1,7 +1,5 @@
 atomic
 climits
-cmath
-compare
 concepts
 cstddef
 cstdint
@@ -15,7 +13,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
index 83db015ba8c5..20025bde4120 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
@@ -1,7 +1,5 @@
 atomic
 climits
-cmath
-compare
 cstddef
 cstdint
 cstdlib
@@ -12,6 +10,5 @@ iosfwd
 limits
 new
 ratio
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
index 1c742b1972d3..9b0f96398db8 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
@@ -18,6 +18,5 @@ new
 stdexcept
 string
 string_view
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
index 4b6b70f55a15..0ead270e3dae 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
@@ -23,7 +23,6 @@ stdexcept
 string
 string_view
 system_error
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
index 626b4a41fe97..22069ebe466d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
@@ -15,7 +15,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
index 313807ad9490..90b8039f7343 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
@@ -1,8 +1,6 @@
 algorithm
 bit
 climits
-cmath
-compare
 concepts
 cstddef
 cstdint
@@ -13,6 +11,5 @@ initializer_list
 iosfwd
 limits
 new
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
index 626b4a41fe97..22069ebe466d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
@@ -15,7 +15,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
index 626b4a41fe97..22069ebe466d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
@@ -15,7 +15,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
index 626b4a41fe97..22069ebe466d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
@@ -15,7 +15,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
index 616c41e5e2fb..1fa8ec3664bc 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
@@ -16,7 +16,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 vector

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
index 0dca23ef4024..aaf59ed27463 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
@@ -23,7 +23,6 @@ ratio
 stdexcept
 string
 string_view
-tuple
 type_traits
 typeinfo
 vector

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
index 573d3aa59bcf..d035ad9ed9b2 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
@@ -12,6 +12,5 @@ limits
 new
 optional
 stdexcept
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
index 8ec7c41bca45..c0575fd4fca9 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
@@ -22,6 +22,5 @@ stdexcept
 string
 string_view
 system_error
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
index c64611690bae..5d834c3613ca 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
@@ -16,7 +16,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
index 0b7d2f2c92e9..573ee5a4a739 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
@@ -17,6 +17,5 @@ limits
 new
 stdexcept
 string_view
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
index fd9ba21f30aa..5892e99104dd 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
@@ -19,6 +19,5 @@ new
 stdexcept
 string
 string_view
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
index 573d3aa59bcf..d035ad9ed9b2 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
@@ -12,6 +12,5 @@ limits
 new
 optional
 stdexcept
-tuple
 type_traits
 version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
index 626b4a41fe97..22069ebe466d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
@@ -15,7 +15,6 @@ limits
 new
 ratio
 stdexcept
-tuple
 type_traits
 typeinfo
 version

diff  --git a/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp b/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp
index 38ee5a96e520..0f51df20a992 100644
--- a/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp
@@ -14,8 +14,9 @@
 //   minmax(const T& a, const T& b, Compare comp);
 
 #include <algorithm>
-#include <functional>
 #include <cassert>
+#include <functional>
+#include <utility>
 
 #include "test_macros.h"
 

diff  --git a/libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp b/libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp
index 8da2b964b7e3..46c2a42349df 100644
--- a/libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp
@@ -21,6 +21,7 @@
 #include <cassert>
 #include <cstddef>
 #include <memory>
+#include <utility>
 
 #include "test_macros.h"
 

diff  --git a/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/bind_return_type.pass.cpp b/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/bind_return_type.pass.cpp
index 780cd6e0c58d..0ba6e01ee9e9 100644
--- a/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/bind_return_type.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/bind_return_type.pass.cpp
@@ -19,9 +19,10 @@
 // only SFINAE away when too few arguments are provided. Otherwise they should
 // be well formed and should ignore any additional arguments.
 
+#include <cassert>
 #include <functional>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 

diff  --git a/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/specialization.pass.cpp b/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/specialization.pass.cpp
index cd0457f5dc12..32279ac33929 100644
--- a/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/specialization.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/specialization.pass.cpp
@@ -16,9 +16,10 @@
 //   be treated as a subexpression in a bind call.
 //   https://llvm.org/PR51753
 
-#include <functional>
 #include <cassert>
+#include <functional>
 #include <type_traits>
+#include <utility>
 
 struct MyBind {
     int operator()(int x, int y) const { return 10*x + y; }

diff  --git a/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isplace/specialization.pass.cpp b/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isplace/specialization.pass.cpp
index e0a6c6a95bab..0e0437bcab07 100644
--- a/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isplace/specialization.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/bind/func.bind/func.bind.isplace/specialization.pass.cpp
@@ -16,9 +16,10 @@
 //   to indicate that T should be treated as a placeholder type.
 //   https://llvm.org/PR51753
 
-#include <functional>
 #include <cassert>
+#include <functional>
 #include <type_traits>
+#include <utility>
 
 struct My2 {};
 template<> struct std::is_placeholder<My2> : std::integral_constant<int, 2> {};

diff  --git a/libcxx/test/std/utilities/function.objects/func.identity/identity.pass.cpp b/libcxx/test/std/utilities/function.objects/func.identity/identity.pass.cpp
index 59b6fc8eadf9..1cce31b831ad 100644
--- a/libcxx/test/std/utilities/function.objects/func.identity/identity.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.identity/identity.pass.cpp
@@ -14,6 +14,7 @@
 
 #include <cassert>
 #include <concepts>
+#include <utility>
 
 #include "MoveOnly.h"
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.verify.cpp b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.verify.cpp
index 596b74a88b8b..b04b958f86a2 100644
--- a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.verify.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.verify.cpp
@@ -16,9 +16,10 @@
 //
 // This signature was removed in C++17
 
+#include <cassert>
 #include <functional>
 #include <memory>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 

diff  --git a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
index 9d6d12373829..b1bf69ef1774 100644
--- a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
@@ -15,8 +15,9 @@
 // This test runs in C++03, but we have deprecated using std::function in C++03.
 // ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX03_FUNCTION
 
-#include <functional>
 #include <cassert>
+#include <functional>
+#include <utility>
 
 #include "test_macros.h"
 #include "count_new.h"

diff  --git a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
index ccfc37a33dd8..70a1b3afd7d3 100644
--- a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
@@ -24,6 +24,7 @@
 #include <memory>
 #include <cstdlib>
 #include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include "count_new.h"

diff  --git a/libcxx/test/std/utilities/function.objects/range.cmp/equal_to.pass.cpp b/libcxx/test/std/utilities/function.objects/range.cmp/equal_to.pass.cpp
index 9588313ca0af..6d207548b217 100644
--- a/libcxx/test/std/utilities/function.objects/range.cmp/equal_to.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/range.cmp/equal_to.pass.cpp
@@ -12,9 +12,10 @@
 
 // ranges::equal_to
 
+#include <cassert>
 #include <functional>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include "compare_types.h"

diff  --git a/libcxx/test/std/utilities/function.objects/range.cmp/greater.pass.cpp b/libcxx/test/std/utilities/function.objects/range.cmp/greater.pass.cpp
index d63b2450cf2a..002ec10e07af 100644
--- a/libcxx/test/std/utilities/function.objects/range.cmp/greater.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/range.cmp/greater.pass.cpp
@@ -12,9 +12,10 @@
 
 // ranges::greater
 
+#include <cassert>
 #include <functional>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include "compare_types.h"

diff  --git a/libcxx/test/std/utilities/function.objects/range.cmp/greater_equal.pass.cpp b/libcxx/test/std/utilities/function.objects/range.cmp/greater_equal.pass.cpp
index ffa3c9472836..ad24a98a168c 100644
--- a/libcxx/test/std/utilities/function.objects/range.cmp/greater_equal.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/range.cmp/greater_equal.pass.cpp
@@ -12,9 +12,10 @@
 
 // ranges::greater_equal
 
+#include <cassert>
 #include <functional>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include "compare_types.h"

diff  --git a/libcxx/test/std/utilities/function.objects/range.cmp/less.pass.cpp b/libcxx/test/std/utilities/function.objects/range.cmp/less.pass.cpp
index 61feee4d3f40..5afb7e0ebdef 100644
--- a/libcxx/test/std/utilities/function.objects/range.cmp/less.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/range.cmp/less.pass.cpp
@@ -12,9 +12,10 @@
 
 // ranges::less
 
+#include <cassert>
 #include <functional>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include "compare_types.h"

diff  --git a/libcxx/test/std/utilities/function.objects/range.cmp/less_equal.pass.cpp b/libcxx/test/std/utilities/function.objects/range.cmp/less_equal.pass.cpp
index 2c770484c5c7..3aa903fa6321 100644
--- a/libcxx/test/std/utilities/function.objects/range.cmp/less_equal.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/range.cmp/less_equal.pass.cpp
@@ -12,9 +12,10 @@
 
 // ranges::less_equal
 
+#include <cassert>
 #include <functional>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include "compare_types.h"

diff  --git a/libcxx/test/std/utilities/function.objects/range.cmp/not_equal_to.pass.cpp b/libcxx/test/std/utilities/function.objects/range.cmp/not_equal_to.pass.cpp
index f4ce329d8af2..4b46bae76ce4 100644
--- a/libcxx/test/std/utilities/function.objects/range.cmp/not_equal_to.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/range.cmp/not_equal_to.pass.cpp
@@ -12,9 +12,10 @@
 
 // ranges::not_equal_to
 
+#include <cassert>
 #include <functional>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include "compare_types.h"

diff  --git a/libcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp b/libcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp
index 4fbbbb1e54c2..23c8c6447861 100644
--- a/libcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp
+++ b/libcxx/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp
@@ -11,9 +11,10 @@
 
 // raw_storage_iterator
 
+#include <cassert>
 #include <memory>
 #include <type_traits>
-#include <cassert>
+#include <utility>
 
 #include "test_macros.h"
 #include <MoveOnly.h>

diff  --git a/libcxx/test/support/container_test_types.h b/libcxx/test/support/container_test_types.h
index baf1b50cfd8b..11c1f9abfd8b 100644
--- a/libcxx/test/support/container_test_types.h
+++ b/libcxx/test/support/container_test_types.h
@@ -84,9 +84,10 @@
  *
  */
 
-#include <functional>
 #include <cassert>
+#include <functional>
 #include <new>
+#include <utility>
 
 #include "test_macros.h"
 


        


More information about the libcxx-commits mailing list