diff --git a/libcxx/cmake/caches/Generic-no-transitive-includes.cmake b/libcxx/cmake/caches/Generic-no-transitive-includes.cmake new file mode 100644 --- /dev/null +++ b/libcxx/cmake/caches/Generic-no-transitive-includes.cmake @@ -0,0 +1,2 @@ +set(LIBCXX_TEST_PARAMS "enable_transitive_includes=False" CACHE STRING "") +set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "") diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -97,19 +97,15 @@ ```` header. The associated macro ``_LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM`` has also been removed. -- Some libc++ headers no longer transitively include all of: - - ```` - - ```` - - ```` - - ```` - - ```` - - ```` - - ```` - - ```` - - If, after updating libc++, you see compiler errors related to missing declarations - in namespace ``std``, it might be because one of your source files now needs to - include one or more of the headers listed above. +- Libc++ is getting ready to remove unnecessary transitive inclusions. This may + break your code in the future. To future-proof your code to these removals, + please compile your code with ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`` defined + and fix any compilation error resulting from missing includes. + +- The ````, ````, ````, ```` and ```` + headers no longer transitively include the ```` header. If you see compiler + errors related to missing declarations in namespace ``std``, make sure you have the + necessary includes. - The integer distributions ``binomial_distribution``, ``discrete_distribution``, ``geometric_distribution``, ``negative_binomial_distribution``, ``poisson_distribution``, diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -1260,6 +1260,12 @@ #include <__algorithm/unwrap_iter.h> #include <__algorithm/upper_bound.h> +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/any b/libcxx/include/any --- a/libcxx/include/any +++ b/libcxx/include/any @@ -94,6 +94,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/array b/libcxx/include/array --- a/libcxx/include/array +++ b/libcxx/include/array @@ -123,6 +123,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/atomic b/libcxx/include/atomic --- a/libcxx/include/atomic +++ b/libcxx/include/atomic @@ -534,6 +534,10 @@ # include <__threading_support> #endif +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/bit b/libcxx/include/bit --- a/libcxx/include/bit +++ b/libcxx/include/bit @@ -71,6 +71,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if defined(__IBMCPP__) # include "__support/ibm/support.h" #endif diff --git a/libcxx/include/charconv b/libcxx/include/charconv --- a/libcxx/include/charconv +++ b/libcxx/include/charconv @@ -96,6 +96,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/coroutine b/libcxx/include/coroutine --- a/libcxx/include/coroutine +++ b/libcxx/include/coroutine @@ -46,6 +46,10 @@ #include <__coroutine/trivial_awaitables.h> #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/deque b/libcxx/include/deque --- a/libcxx/include/deque +++ b/libcxx/include/deque @@ -185,6 +185,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/experimental/simd b/libcxx/include/experimental/simd --- a/libcxx/include/experimental/simd +++ b/libcxx/include/experimental/simd @@ -656,6 +656,11 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/experimental/unordered_map b/libcxx/include/experimental/unordered_map --- a/libcxx/include/experimental/unordered_map +++ b/libcxx/include/experimental/unordered_map @@ -45,6 +45,14 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +# include +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map --- a/libcxx/include/ext/hash_map +++ b/libcxx/include/ext/hash_map @@ -210,6 +210,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if defined(__DEPRECATED) && __DEPRECATED #if defined(_LIBCPP_WARNING) _LIBCPP_WARNING("Use of the header is deprecated. Migrate to ") diff --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set --- a/libcxx/include/ext/hash_set +++ b/libcxx/include/ext/hash_set @@ -199,6 +199,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if defined(__DEPRECATED) && __DEPRECATED #if defined(_LIBCPP_WARNING) _LIBCPP_WARNING("Use of the header is deprecated. Migrate to ") diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list --- a/libcxx/include/forward_list +++ b/libcxx/include/forward_list @@ -194,6 +194,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/functional b/libcxx/include/functional --- a/libcxx/include/functional +++ b/libcxx/include/functional @@ -529,6 +529,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/future b/libcxx/include/future --- a/libcxx/include/future +++ b/libcxx/include/future @@ -378,6 +378,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/iterator b/libcxx/include/iterator --- a/libcxx/include/iterator +++ b/libcxx/include/iterator @@ -724,6 +724,13 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/list b/libcxx/include/list --- a/libcxx/include/list +++ b/libcxx/include/list @@ -202,6 +202,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/locale b/libcxx/include/locale --- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -211,6 +211,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) // Most unix variants have catopen. These are the specific ones that don't. # if !defined(__BIONIC__) && !defined(_NEWLIB_VERSION) && !defined(__EMSCRIPTEN__) diff --git a/libcxx/include/map b/libcxx/include/map --- a/libcxx/include/map +++ b/libcxx/include/map @@ -546,6 +546,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/memory b/libcxx/include/memory --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -871,6 +871,11 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/mutex b/libcxx/include/mutex --- a/libcxx/include/mutex +++ b/libcxx/include/mutex @@ -198,6 +198,10 @@ #endif #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/numeric b/libcxx/include/numeric --- a/libcxx/include/numeric +++ b/libcxx/include/numeric @@ -163,6 +163,11 @@ #include <__numeric/transform_inclusive_scan.h> #include <__numeric/transform_reduce.h> +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/optional b/libcxx/include/optional --- a/libcxx/include/optional +++ b/libcxx/include/optional @@ -177,6 +177,21 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/ostream b/libcxx/include/ostream --- a/libcxx/include/ostream +++ b/libcxx/include/ostream @@ -142,6 +142,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/queue b/libcxx/include/queue --- a/libcxx/include/queue +++ b/libcxx/include/queue @@ -231,6 +231,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + // standard-mandated includes #include #include diff --git a/libcxx/include/random b/libcxx/include/random --- a/libcxx/include/random +++ b/libcxx/include/random @@ -1718,6 +1718,10 @@ #include <__random/weibull_distribution.h> #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/regex b/libcxx/include/regex --- a/libcxx/include/regex +++ b/libcxx/include/regex @@ -778,6 +778,11 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/set b/libcxx/include/set --- a/libcxx/include/set +++ b/libcxx/include/set @@ -485,6 +485,11 @@ #include <__utility/forward.h> #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/span b/libcxx/include/span --- a/libcxx/include/span +++ b/libcxx/include/span @@ -148,6 +148,11 @@ #include // for remove_cv, etc #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/stack b/libcxx/include/stack --- a/libcxx/include/stack +++ b/libcxx/include/stack @@ -107,6 +107,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + // standard-mandated includes #include #include diff --git a/libcxx/include/string b/libcxx/include/string --- a/libcxx/include/string +++ b/libcxx/include/string @@ -555,6 +555,16 @@ # include #endif +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +# include +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/string_view b/libcxx/include/string_view --- a/libcxx/include/string_view +++ b/libcxx/include/string_view @@ -218,6 +218,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/thread b/libcxx/include/thread --- a/libcxx/include/thread +++ b/libcxx/include/thread @@ -98,6 +98,11 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/tuple b/libcxx/include/tuple --- a/libcxx/include/tuple +++ b/libcxx/include/tuple @@ -219,6 +219,14 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/typeindex b/libcxx/include/typeindex --- a/libcxx/include/typeindex +++ b/libcxx/include/typeindex @@ -50,6 +50,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map --- a/libcxx/include/unordered_map +++ b/libcxx/include/unordered_map @@ -531,6 +531,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set --- a/libcxx/include/unordered_set +++ b/libcxx/include/unordered_set @@ -474,6 +474,11 @@ #include <__utility/forward.h> #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/include/utility b/libcxx/include/utility --- a/libcxx/include/utility +++ b/libcxx/include/utility @@ -243,6 +243,10 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +#endif + // standard-mandated includes #include #include diff --git a/libcxx/include/valarray b/libcxx/include/valarray --- a/libcxx/include/valarray +++ b/libcxx/include/valarray @@ -360,6 +360,11 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/variant b/libcxx/include/variant --- a/libcxx/include/variant +++ b/libcxx/include/variant @@ -219,6 +219,11 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/vector b/libcxx/include/vector --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -305,6 +305,12 @@ #include #include +#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +# include +# include +# include +#endif + // standard-mandated includes // [iterator.range] diff --git a/libcxx/test/libcxx/transitive_includes.sh.cpp b/libcxx/test/libcxx/transitive_includes.sh.cpp --- a/libcxx/test/libcxx/transitive_includes.sh.cpp +++ b/libcxx/test/libcxx/transitive_includes.sh.cpp @@ -34,6 +34,11 @@ // This test doesn't work on AIX or Windows, but it should. Needs investigation. // XFAIL: buildhost=aix, buildhost=windows +// This test is not supported when we remove the transitive includes provided for backwards +// compatibility. When we bulk-remove them, we'll adjust the includes that are expected by +// this test instead. +// XFAIL: transitive-includes-disabled + // Prevent from generating deprecated warnings for this test. #if defined(__DEPRECATED) # undef __DEPRECATED diff --git a/libcxx/test/libcxx/transitive_includes/expected.algorithm b/libcxx/test/libcxx/transitive_includes/expected.algorithm --- a/libcxx/test/libcxx/transitive_includes/expected.algorithm +++ b/libcxx/test/libcxx/transitive_includes/expected.algorithm @@ -1,6 +1,7 @@ algorithm atomic bit +chrono climits cmath compare @@ -13,6 +14,7 @@ exception initializer_list iosfwd +iterator limits memory new @@ -21,4 +23,6 @@ tuple type_traits typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.any b/libcxx/test/libcxx/transitive_includes/expected.any --- a/libcxx/test/libcxx/transitive_includes/expected.any +++ b/libcxx/test/libcxx/transitive_includes/expected.any @@ -1,5 +1,6 @@ any atomic +chrono climits cmath compare @@ -12,6 +13,7 @@ exception initializer_list iosfwd +iterator limits memory new @@ -20,4 +22,6 @@ tuple type_traits typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.array b/libcxx/test/libcxx/transitive_includes/expected.array --- a/libcxx/test/libcxx/transitive_includes/expected.array +++ b/libcxx/test/libcxx/transitive_includes/expected.array @@ -1,14 +1,29 @@ +algorithm array +atomic +bit +chrono +climits cmath compare concepts cstddef cstdint cstdlib +cstring +ctime exception initializer_list iosfwd +iterator limits +memory +new +ratio stdexcept +tuple type_traits +typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.atomic b/libcxx/test/libcxx/transitive_includes/expected.atomic --- a/libcxx/test/libcxx/transitive_includes/expected.atomic +++ b/libcxx/test/libcxx/transitive_includes/expected.atomic @@ -1,5 +1,8 @@ atomic +chrono climits +cmath +compare cstddef cstdint cstring diff --git a/libcxx/test/libcxx/transitive_includes/expected.barrier b/libcxx/test/libcxx/transitive_includes/expected.barrier --- a/libcxx/test/libcxx/transitive_includes/expected.barrier +++ b/libcxx/test/libcxx/transitive_includes/expected.barrier @@ -1,5 +1,6 @@ atomic barrier +chrono climits cmath compare @@ -12,6 +13,7 @@ exception initializer_list iosfwd +iterator limits memory new @@ -20,4 +22,6 @@ tuple type_traits typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.bit b/libcxx/test/libcxx/transitive_includes/expected.bit --- a/libcxx/test/libcxx/transitive_includes/expected.bit +++ b/libcxx/test/libcxx/transitive_includes/expected.bit @@ -2,6 +2,7 @@ cstddef cstdint cstdlib +iosfwd limits type_traits version diff --git a/libcxx/test/libcxx/transitive_includes/expected.bitset b/libcxx/test/libcxx/transitive_includes/expected.bitset --- a/libcxx/test/libcxx/transitive_includes/expected.bitset +++ b/libcxx/test/libcxx/transitive_includes/expected.bitset @@ -1,6 +1,10 @@ +algorithm +array atomic +bit bitset cctype +chrono climits cmath compare @@ -14,11 +18,14 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept string @@ -26,4 +33,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/expected.ccomplex --- a/libcxx/test/libcxx/transitive_includes/expected.ccomplex +++ b/libcxx/test/libcxx/transitive_includes/expected.ccomplex @@ -1,8 +1,12 @@ +algorithm +array atomic +bit bitset ccomplex cctype cerrno +chrono climits cmath compare @@ -18,15 +22,18 @@ cwchar cwctype exception +functional initializer_list ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio sstream @@ -38,4 +45,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.charconv b/libcxx/test/libcxx/transitive_includes/expected.charconv --- a/libcxx/test/libcxx/transitive_includes/expected.charconv +++ b/libcxx/test/libcxx/transitive_includes/expected.charconv @@ -6,6 +6,7 @@ cstdint cstdlib cstring +iosfwd limits type_traits version diff --git a/libcxx/test/libcxx/transitive_includes/expected.codecvt b/libcxx/test/libcxx/transitive_includes/expected.codecvt --- a/libcxx/test/libcxx/transitive_includes/expected.codecvt +++ b/libcxx/test/libcxx/transitive_includes/expected.codecvt @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath codecvt @@ -15,12 +19,15 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory mutex new +optional ratio stdexcept string @@ -29,4 +36,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.complex b/libcxx/test/libcxx/transitive_includes/expected.complex --- a/libcxx/test/libcxx/transitive_includes/expected.complex +++ b/libcxx/test/libcxx/transitive_includes/expected.complex @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -17,15 +21,18 @@ cwchar cwctype exception +functional initializer_list ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio sstream @@ -37,4 +44,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/expected.condition_variable --- a/libcxx/test/libcxx/transitive_includes/expected.condition_variable +++ b/libcxx/test/libcxx/transitive_includes/expected.condition_variable @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -15,11 +19,14 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept string @@ -28,4 +35,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.coroutine b/libcxx/test/libcxx/transitive_includes/expected.coroutine --- a/libcxx/test/libcxx/transitive_includes/expected.coroutine +++ b/libcxx/test/libcxx/transitive_includes/expected.coroutine @@ -4,6 +4,7 @@ cstddef cstdint cstring +iosfwd limits type_traits version diff --git a/libcxx/test/libcxx/transitive_includes/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/expected.ctgmath --- a/libcxx/test/libcxx/transitive_includes/expected.ctgmath +++ b/libcxx/test/libcxx/transitive_includes/expected.ctgmath @@ -1,8 +1,12 @@ +algorithm +array atomic +bit bitset ccomplex cctype cerrno +chrono climits cmath compare @@ -19,15 +23,18 @@ cwchar cwctype exception +functional initializer_list ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio sstream @@ -39,4 +46,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.deque b/libcxx/test/libcxx/transitive_includes/expected.deque --- a/libcxx/test/libcxx/transitive_includes/expected.deque +++ b/libcxx/test/libcxx/transitive_includes/expected.deque @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -10,14 +14,21 @@ ctime deque exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm @@ -1,6 +1,7 @@ algorithm atomic bit +chrono climits cmath compare @@ -14,6 +15,7 @@ experimental/algorithm initializer_list iosfwd +iterator limits memory new @@ -22,4 +24,6 @@ tuple type_traits typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine @@ -1,4 +1,5 @@ atomic +chrono climits cmath compare @@ -12,6 +13,7 @@ experimental/coroutine initializer_list iosfwd +iterator limits memory new @@ -20,4 +22,6 @@ tuple type_traits typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/expected.experimental_deque --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_deque +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_deque @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -13,15 +17,21 @@ experimental/deque experimental/memory_resource experimental/utility +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept tuple type_traits typeinfo +unordered_map utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -13,15 +17,21 @@ experimental/memory_resource experimental/utility forward_list +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept tuple type_traits typeinfo +unordered_map utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/expected.experimental_functional --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_functional +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_functional @@ -1,5 +1,8 @@ +algorithm array atomic +bit +chrono climits cmath compare @@ -14,6 +17,7 @@ functional initializer_list iosfwd +iterator limits memory new @@ -24,5 +28,7 @@ type_traits typeinfo unordered_map +utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_iterator b/libcxx/test/libcxx/transitive_includes/expected.experimental_iterator --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_iterator +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_iterator @@ -14,5 +14,7 @@ new tuple type_traits +typeinfo +utility variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/expected.experimental_list --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_list +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_list @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -12,16 +16,22 @@ experimental/list experimental/memory_resource experimental/utility +functional initializer_list iosfwd +iterator limits list memory new +optional ratio stdexcept tuple type_traits typeinfo +unordered_map utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/expected.experimental_map --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_map +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_map @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -12,8 +16,10 @@ experimental/map experimental/memory_resource experimental/utility +functional initializer_list iosfwd +iterator limits map memory @@ -24,5 +30,8 @@ tuple type_traits typeinfo +unordered_map utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource @@ -1,4 +1,5 @@ atomic +chrono climits cmath compare @@ -13,6 +14,7 @@ experimental/utility initializer_list iosfwd +iterator limits memory new @@ -22,4 +24,5 @@ type_traits typeinfo utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/expected.experimental_regex --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_regex +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_regex @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -19,12 +23,15 @@ experimental/regex experimental/string experimental/utility +functional initializer_list iosfwd +iterator limits memory mutex new +optional ratio regex stdexcept @@ -34,6 +41,8 @@ tuple type_traits typeinfo +unordered_map utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/expected.experimental_set --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_set +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_set @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -12,8 +16,10 @@ experimental/memory_resource experimental/set experimental/utility +functional initializer_list iosfwd +iterator limits memory new @@ -24,5 +30,8 @@ tuple type_traits typeinfo +unordered_map utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/expected.experimental_simd --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_simd +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_simd @@ -1,16 +1,34 @@ +algorithm array +atomic +bit +chrono +climits cmath compare concepts cstddef cstdint cstdlib +cstring +ctime exception experimental/simd +functional initializer_list iosfwd +iterator limits +memory +new +optional +ratio stdexcept tuple type_traits +typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/expected.experimental_string --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_string +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_string @@ -1,5 +1,9 @@ +algorithm +array atomic +bit cctype +chrono climits cmath compare @@ -16,11 +20,14 @@ experimental/memory_resource experimental/string experimental/utility +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept string @@ -28,5 +35,8 @@ tuple type_traits typeinfo +unordered_map utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -12,8 +16,10 @@ experimental/memory_resource experimental/unordered_map experimental/utility +functional initializer_list iosfwd +iterator limits memory new @@ -25,4 +31,6 @@ typeinfo unordered_map utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -12,8 +16,10 @@ experimental/memory_resource experimental/unordered_set experimental/utility +functional initializer_list iosfwd +iterator limits memory new @@ -23,6 +29,9 @@ tuple type_traits typeinfo +unordered_map unordered_set utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_utility b/libcxx/test/libcxx/transitive_includes/expected.experimental_utility --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_utility +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_utility @@ -5,6 +5,7 @@ cstdlib experimental/utility initializer_list +iosfwd limits type_traits utility diff --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/expected.experimental_vector --- a/libcxx/test/libcxx/transitive_includes/expected.experimental_vector +++ b/libcxx/test/libcxx/transitive_includes/expected.experimental_vector @@ -1,4 +1,7 @@ +algorithm atomic +bit +chrono climits cmath compare @@ -14,6 +17,7 @@ experimental/vector initializer_list iosfwd +iterator limits memory new @@ -23,5 +27,6 @@ type_traits typeinfo utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/expected.ext_hash_map --- a/libcxx/test/libcxx/transitive_includes/expected.ext_hash_map +++ b/libcxx/test/libcxx/transitive_includes/expected.ext_hash_map @@ -3,6 +3,7 @@ atomic bit cctype +chrono climits cmath compare @@ -20,6 +21,7 @@ functional initializer_list iosfwd +iterator limits memory new @@ -32,5 +34,7 @@ type_traits typeinfo unordered_map +utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/expected.ext_hash_set --- a/libcxx/test/libcxx/transitive_includes/expected.ext_hash_set +++ b/libcxx/test/libcxx/transitive_includes/expected.ext_hash_set @@ -3,6 +3,7 @@ atomic bit cctype +chrono climits cmath compare @@ -20,6 +21,7 @@ functional initializer_list iosfwd +iterator limits memory new @@ -32,5 +34,7 @@ type_traits typeinfo unordered_map +utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.filesystem b/libcxx/test/libcxx/transitive_includes/expected.filesystem --- a/libcxx/test/libcxx/transitive_includes/expected.filesystem +++ b/libcxx/test/libcxx/transitive_includes/expected.filesystem @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -17,16 +21,19 @@ cwctype exception filesystem +functional initializer_list iomanip ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio stdexcept @@ -37,4 +44,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.format b/libcxx/test/libcxx/transitive_includes/expected.format --- a/libcxx/test/libcxx/transitive_includes/expected.format +++ b/libcxx/test/libcxx/transitive_includes/expected.format @@ -1,9 +1,11 @@ +algorithm array atomic bit cctype cerrno charconv +chrono climits cmath compare @@ -19,9 +21,11 @@ cwctype exception format +functional initializer_list ios iosfwd +iterator limits locale memory @@ -37,4 +41,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.forward_list b/libcxx/test/libcxx/transitive_includes/expected.forward_list --- a/libcxx/test/libcxx/transitive_includes/expected.forward_list +++ b/libcxx/test/libcxx/transitive_includes/expected.forward_list @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -10,14 +14,21 @@ ctime exception forward_list +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.fstream b/libcxx/test/libcxx/transitive_includes/expected.fstream --- a/libcxx/test/libcxx/transitive_includes/expected.fstream +++ b/libcxx/test/libcxx/transitive_includes/expected.fstream @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -18,16 +22,19 @@ exception filesystem fstream +functional initializer_list iomanip ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio stdexcept @@ -38,4 +45,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.functional b/libcxx/test/libcxx/transitive_includes/expected.functional --- a/libcxx/test/libcxx/transitive_includes/expected.functional +++ b/libcxx/test/libcxx/transitive_includes/expected.functional @@ -1,5 +1,8 @@ +algorithm array atomic +bit +chrono climits cmath compare @@ -13,6 +16,7 @@ functional initializer_list iosfwd +iterator limits memory new @@ -23,5 +27,7 @@ type_traits typeinfo unordered_map +utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.future b/libcxx/test/libcxx/transitive_includes/expected.future --- a/libcxx/test/libcxx/transitive_includes/expected.future +++ b/libcxx/test/libcxx/transitive_includes/expected.future @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -14,13 +18,16 @@ cwchar cwctype exception +functional future initializer_list iosfwd +iterator limits memory mutex new +optional ratio stdexcept string @@ -30,4 +37,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.iomanip b/libcxx/test/libcxx/transitive_includes/expected.iomanip --- a/libcxx/test/libcxx/transitive_includes/expected.iomanip +++ b/libcxx/test/libcxx/transitive_includes/expected.iomanip @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -16,16 +20,19 @@ cwchar cwctype exception +functional initializer_list iomanip ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio stdexcept @@ -36,4 +43,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.ios b/libcxx/test/libcxx/transitive_includes/expected.ios --- a/libcxx/test/libcxx/transitive_includes/expected.ios +++ b/libcxx/test/libcxx/transitive_includes/expected.ios @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -14,13 +18,16 @@ cwchar cwctype exception +functional initializer_list ios iosfwd +iterator limits memory mutex new +optional ratio stdexcept string @@ -29,4 +36,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.iostream b/libcxx/test/libcxx/transitive_includes/expected.iostream --- a/libcxx/test/libcxx/transitive_includes/expected.iostream +++ b/libcxx/test/libcxx/transitive_includes/expected.iostream @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -16,16 +20,19 @@ cwchar cwctype exception +functional initializer_list ios iosfwd iostream istream +iterator limits locale memory mutex new +optional ostream ratio stdexcept @@ -36,4 +43,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.istream b/libcxx/test/libcxx/transitive_includes/expected.istream --- a/libcxx/test/libcxx/transitive_includes/expected.istream +++ b/libcxx/test/libcxx/transitive_includes/expected.istream @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -16,15 +20,18 @@ cwchar cwctype exception +functional initializer_list ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio stdexcept @@ -35,4 +42,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.iterator b/libcxx/test/libcxx/transitive_includes/expected.iterator --- a/libcxx/test/libcxx/transitive_includes/expected.iterator +++ b/libcxx/test/libcxx/transitive_includes/expected.iterator @@ -13,5 +13,7 @@ new tuple type_traits +typeinfo +utility variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.latch b/libcxx/test/libcxx/transitive_includes/expected.latch --- a/libcxx/test/libcxx/transitive_includes/expected.latch +++ b/libcxx/test/libcxx/transitive_includes/expected.latch @@ -1,5 +1,8 @@ atomic +chrono climits +cmath +compare cstddef cstdint cstring diff --git a/libcxx/test/libcxx/transitive_includes/expected.list b/libcxx/test/libcxx/transitive_includes/expected.list --- a/libcxx/test/libcxx/transitive_includes/expected.list +++ b/libcxx/test/libcxx/transitive_includes/expected.list @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -9,15 +13,22 @@ cstring ctime exception +functional initializer_list iosfwd +iterator limits list memory new +optional ratio stdexcept tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.locale b/libcxx/test/libcxx/transitive_includes/expected.locale --- a/libcxx/test/libcxx/transitive_includes/expected.locale +++ b/libcxx/test/libcxx/transitive_includes/expected.locale @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -15,14 +19,17 @@ cwchar cwctype exception +functional initializer_list ios iosfwd +iterator limits locale memory mutex new +optional ratio stdexcept streambuf @@ -32,4 +39,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.map b/libcxx/test/libcxx/transitive_includes/expected.map --- a/libcxx/test/libcxx/transitive_includes/expected.map +++ b/libcxx/test/libcxx/transitive_includes/expected.map @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -9,8 +13,10 @@ cstring ctime exception +functional initializer_list iosfwd +iterator limits map memory @@ -21,4 +27,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.memory b/libcxx/test/libcxx/transitive_includes/expected.memory --- a/libcxx/test/libcxx/transitive_includes/expected.memory +++ b/libcxx/test/libcxx/transitive_includes/expected.memory @@ -1,4 +1,5 @@ atomic +chrono climits cmath compare @@ -11,6 +12,7 @@ exception initializer_list iosfwd +iterator limits memory new @@ -19,4 +21,6 @@ tuple type_traits typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.mutex b/libcxx/test/libcxx/transitive_includes/expected.mutex --- a/libcxx/test/libcxx/transitive_includes/expected.mutex +++ b/libcxx/test/libcxx/transitive_includes/expected.mutex @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -14,12 +18,15 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory mutex new +optional ratio stdexcept string @@ -28,4 +35,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.numeric b/libcxx/test/libcxx/transitive_includes/expected.numeric --- a/libcxx/test/libcxx/transitive_includes/expected.numeric +++ b/libcxx/test/libcxx/transitive_includes/expected.numeric @@ -1,8 +1,34 @@ +algorithm +array +atomic +bit +chrono +climits cmath +compare concepts cstddef cstdint +cstdlib +cstring +ctime +exception +functional +initializer_list +iosfwd +iterator limits +memory +new numeric +optional +ratio +stdexcept +tuple type_traits +typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.optional b/libcxx/test/libcxx/transitive_includes/expected.optional --- a/libcxx/test/libcxx/transitive_includes/expected.optional +++ b/libcxx/test/libcxx/transitive_includes/expected.optional @@ -1,15 +1,27 @@ +atomic +chrono +climits cmath compare +concepts cstddef cstdint cstdlib cstring +ctime exception initializer_list iosfwd +iterator limits +memory new optional +ratio stdexcept +tuple type_traits +typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.ostream b/libcxx/test/libcxx/transitive_includes/expected.ostream --- a/libcxx/test/libcxx/transitive_includes/expected.ostream +++ b/libcxx/test/libcxx/transitive_includes/expected.ostream @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -16,14 +20,17 @@ cwchar cwctype exception +functional initializer_list ios iosfwd +iterator limits locale memory mutex new +optional ostream ratio stdexcept @@ -34,4 +41,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.queue b/libcxx/test/libcxx/transitive_includes/expected.queue --- a/libcxx/test/libcxx/transitive_includes/expected.queue +++ b/libcxx/test/libcxx/transitive_includes/expected.queue @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -10,16 +14,22 @@ ctime deque exception +functional initializer_list iosfwd +iterator limits memory new +optional queue ratio stdexcept tuple type_traits typeinfo +unordered_map +utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.random b/libcxx/test/libcxx/transitive_includes/expected.random --- a/libcxx/test/libcxx/transitive_includes/expected.random +++ b/libcxx/test/libcxx/transitive_includes/expected.random @@ -1,6 +1,9 @@ +algorithm +array atomic bit cctype +chrono climits cmath compare @@ -14,12 +17,15 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory new numeric +optional random ratio stdexcept @@ -28,5 +34,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.ranges b/libcxx/test/libcxx/transitive_includes/expected.ranges --- a/libcxx/test/libcxx/transitive_includes/expected.ranges +++ b/libcxx/test/libcxx/transitive_includes/expected.ranges @@ -1,4 +1,9 @@ +algorithm array +atomic +bit +chrono +climits cmath compare concepts @@ -6,17 +11,25 @@ cstdint cstdlib cstring +ctime exception +functional initializer_list iosfwd iterator limits +memory new optional ranges +ratio span stdexcept tuple type_traits +typeinfo +unordered_map +utility variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.regex b/libcxx/test/libcxx/transitive_includes/expected.regex --- a/libcxx/test/libcxx/transitive_includes/expected.regex +++ b/libcxx/test/libcxx/transitive_includes/expected.regex @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -15,12 +19,15 @@ cwctype deque exception +functional initializer_list iosfwd +iterator limits memory mutex new +optional ratio regex stdexcept @@ -30,5 +37,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/expected.scoped_allocator --- a/libcxx/test/libcxx/transitive_includes/expected.scoped_allocator +++ b/libcxx/test/libcxx/transitive_includes/expected.scoped_allocator @@ -1,4 +1,5 @@ atomic +chrono climits cmath compare @@ -11,6 +12,7 @@ exception initializer_list iosfwd +iterator limits memory new @@ -20,4 +22,6 @@ tuple type_traits typeinfo +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.semaphore b/libcxx/test/libcxx/transitive_includes/expected.semaphore --- a/libcxx/test/libcxx/transitive_includes/expected.semaphore +++ b/libcxx/test/libcxx/transitive_includes/expected.semaphore @@ -1,5 +1,8 @@ atomic +chrono climits +cmath +compare cstddef cstdint cstring diff --git a/libcxx/test/libcxx/transitive_includes/expected.set b/libcxx/test/libcxx/transitive_includes/expected.set --- a/libcxx/test/libcxx/transitive_includes/expected.set +++ b/libcxx/test/libcxx/transitive_includes/expected.set @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -9,8 +13,10 @@ cstring ctime exception +functional initializer_list iosfwd +iterator limits memory new @@ -21,4 +27,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/expected.shared_mutex --- a/libcxx/test/libcxx/transitive_includes/expected.shared_mutex +++ b/libcxx/test/libcxx/transitive_includes/expected.shared_mutex @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -14,11 +18,14 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio shared_mutex stdexcept @@ -28,4 +35,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.span b/libcxx/test/libcxx/transitive_includes/expected.span --- a/libcxx/test/libcxx/transitive_includes/expected.span +++ b/libcxx/test/libcxx/transitive_includes/expected.span @@ -1,15 +1,34 @@ +algorithm array +atomic +bit +chrono +climits cmath compare concepts cstddef cstdint cstdlib +cstring +ctime exception +functional initializer_list iosfwd +iterator limits +memory +new +optional +ratio span stdexcept +tuple type_traits +typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.sstream b/libcxx/test/libcxx/transitive_includes/expected.sstream --- a/libcxx/test/libcxx/transitive_includes/expected.sstream +++ b/libcxx/test/libcxx/transitive_includes/expected.sstream @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -16,15 +20,18 @@ cwchar cwctype exception +functional initializer_list ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio sstream @@ -36,4 +43,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.stack b/libcxx/test/libcxx/transitive_includes/expected.stack --- a/libcxx/test/libcxx/transitive_includes/expected.stack +++ b/libcxx/test/libcxx/transitive_includes/expected.stack @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -10,15 +14,22 @@ ctime deque exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio stack stdexcept tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.streambuf b/libcxx/test/libcxx/transitive_includes/expected.streambuf --- a/libcxx/test/libcxx/transitive_includes/expected.streambuf +++ b/libcxx/test/libcxx/transitive_includes/expected.streambuf @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -14,13 +18,16 @@ cwchar cwctype exception +functional initializer_list ios iosfwd +iterator limits memory mutex new +optional ratio stdexcept streambuf @@ -30,4 +37,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.string b/libcxx/test/libcxx/transitive_includes/expected.string --- a/libcxx/test/libcxx/transitive_includes/expected.string +++ b/libcxx/test/libcxx/transitive_includes/expected.string @@ -1,5 +1,9 @@ +algorithm +array atomic +bit cctype +chrono climits cmath compare @@ -13,11 +17,14 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept string @@ -25,4 +32,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.string_view b/libcxx/test/libcxx/transitive_includes/expected.string_view --- a/libcxx/test/libcxx/transitive_includes/expected.string_view +++ b/libcxx/test/libcxx/transitive_includes/expected.string_view @@ -1,4 +1,10 @@ +algorithm +array +atomic +bit cctype +chrono +climits cmath compare concepts @@ -7,13 +13,26 @@ cstdio cstdlib cstring +ctime cwchar cwctype exception +functional initializer_list iosfwd +iterator limits +memory +new +optional +ratio stdexcept string_view +tuple type_traits +typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.strstream b/libcxx/test/libcxx/transitive_includes/expected.strstream --- a/libcxx/test/libcxx/transitive_includes/expected.strstream +++ b/libcxx/test/libcxx/transitive_includes/expected.strstream @@ -1,7 +1,11 @@ +algorithm +array atomic +bit bitset cctype cerrno +chrono climits cmath compare @@ -16,15 +20,18 @@ cwchar cwctype exception +functional initializer_list ios iosfwd istream +iterator limits locale memory mutex new +optional ostream ratio stdexcept @@ -36,4 +43,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.system_error b/libcxx/test/libcxx/transitive_includes/expected.system_error --- a/libcxx/test/libcxx/transitive_includes/expected.system_error +++ b/libcxx/test/libcxx/transitive_includes/expected.system_error @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -14,11 +18,14 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept string @@ -27,4 +34,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.thread b/libcxx/test/libcxx/transitive_includes/expected.thread --- a/libcxx/test/libcxx/transitive_includes/expected.thread +++ b/libcxx/test/libcxx/transitive_includes/expected.thread @@ -1,6 +1,10 @@ +algorithm +array atomic +bit cctype cerrno +chrono climits cmath compare @@ -14,11 +18,14 @@ cwchar cwctype exception +functional initializer_list iosfwd +iterator limits memory new +optional ratio stdexcept string @@ -28,4 +35,8 @@ tuple type_traits typeinfo +unordered_map +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.tuple b/libcxx/test/libcxx/transitive_includes/expected.tuple --- a/libcxx/test/libcxx/transitive_includes/expected.tuple +++ b/libcxx/test/libcxx/transitive_includes/expected.tuple @@ -2,7 +2,14 @@ compare cstddef cstdint +cstdlib +exception +initializer_list +iosfwd limits +new tuple type_traits +typeinfo +utility version diff --git a/libcxx/test/libcxx/transitive_includes/expected.typeindex b/libcxx/test/libcxx/transitive_includes/expected.typeindex --- a/libcxx/test/libcxx/transitive_includes/expected.typeindex +++ b/libcxx/test/libcxx/transitive_includes/expected.typeindex @@ -4,8 +4,12 @@ cstdint cstdlib exception +initializer_list +iosfwd limits +new type_traits typeindex typeinfo +utility version diff --git a/libcxx/test/libcxx/transitive_includes/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/expected.unordered_map --- a/libcxx/test/libcxx/transitive_includes/expected.unordered_map +++ b/libcxx/test/libcxx/transitive_includes/expected.unordered_map @@ -1,4 +1,7 @@ +algorithm atomic +bit +chrono climits cmath compare @@ -11,6 +14,7 @@ exception initializer_list iosfwd +iterator limits memory new @@ -21,4 +25,6 @@ type_traits typeinfo unordered_map +utility +variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/expected.unordered_set --- a/libcxx/test/libcxx/transitive_includes/expected.unordered_set +++ b/libcxx/test/libcxx/transitive_includes/expected.unordered_set @@ -1,4 +1,8 @@ +algorithm +array atomic +bit +chrono climits cmath compare @@ -9,8 +13,10 @@ cstring ctime exception +functional initializer_list iosfwd +iterator limits memory new @@ -20,5 +26,9 @@ tuple type_traits typeinfo +unordered_map unordered_set +utility +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.utility b/libcxx/test/libcxx/transitive_includes/expected.utility --- a/libcxx/test/libcxx/transitive_includes/expected.utility +++ b/libcxx/test/libcxx/transitive_includes/expected.utility @@ -4,6 +4,7 @@ cstdint cstdlib initializer_list +iosfwd limits type_traits utility diff --git a/libcxx/test/libcxx/transitive_includes/expected.valarray b/libcxx/test/libcxx/transitive_includes/expected.valarray --- a/libcxx/test/libcxx/transitive_includes/expected.valarray +++ b/libcxx/test/libcxx/transitive_includes/expected.valarray @@ -1,15 +1,34 @@ +algorithm +array +atomic +bit +chrono +climits cmath +compare concepts cstddef cstdint cstdlib cstring +ctime exception +functional initializer_list iosfwd +iterator limits +memory new +optional +ratio stdexcept +tuple type_traits +typeinfo +unordered_map +utility valarray +variant +vector version diff --git a/libcxx/test/libcxx/transitive_includes/expected.variant b/libcxx/test/libcxx/transitive_includes/expected.variant --- a/libcxx/test/libcxx/transitive_includes/expected.variant +++ b/libcxx/test/libcxx/transitive_includes/expected.variant @@ -6,9 +6,12 @@ cstring exception initializer_list +iosfwd limits new tuple type_traits +typeinfo +utility variant version diff --git a/libcxx/test/libcxx/transitive_includes/expected.vector b/libcxx/test/libcxx/transitive_includes/expected.vector --- a/libcxx/test/libcxx/transitive_includes/expected.vector +++ b/libcxx/test/libcxx/transitive_includes/expected.vector @@ -1,4 +1,7 @@ +algorithm atomic +bit +chrono climits cmath compare @@ -11,6 +14,7 @@ exception initializer_list iosfwd +iterator limits memory new @@ -19,5 +23,7 @@ tuple type_traits typeinfo +utility +variant vector version diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -336,7 +336,6 @@ timeout_in_minutes: 120 # Tests with various build configurations. - - label: "Static libraries" command: "libcxx/utils/ci/run-buildbot generic-static" artifact_paths: @@ -393,6 +392,20 @@ limit: 2 timeout_in_minutes: 120 + - label: "No transitive includes" + command: "libcxx/utils/ci/run-buildbot generic-no-transitive-includes" + artifact_paths: + - "**/test-results.xml" + - "**/*.abilist" + agents: + queue: "libcxx-builders" + os: "linux" + retry: + automatic: + - exit_status: -1 # Agent was lost + limit: 2 + timeout_in_minutes: 120 + - label: "With LLVM's libunwind" command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder" artifact_paths: diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -324,6 +324,11 @@ generate-cmake -DLIBCXXABI_USE_LLVM_UNWINDER=ON check-runtimes ;; +generic-no-transitive-includes) + clean + generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-transitive-includes.cmake" + check-runtimes +;; generic-no-threads) clean generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-threads.cmake" diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py --- a/libcxx/utils/libcxx/test/params.py +++ b/libcxx/utils/libcxx/test/params.py @@ -186,6 +186,15 @@ "This should be used sparingly since specifying ad-hoc features manually is error-prone and " "brittle in the long run as changes are made to the test suite.", actions=lambda features: [AddFeature(f) for f in features]), + + Parameter(name='enable_transitive_includes', choices=[True, False], type=bool, default=True, + help="Whether to enable backwards-compatibility transitive includes when running the tests. This " + "is provided to ensure that the trimmed-down version of libc++ does not bit-rot in between " + "points at which we bulk-remove transitive includes.", + actions=lambda enabled: [] if enabled else [ + AddFeature('transitive-includes-disabled'), + AddCompileFlag('-D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES') + ]), ] DEFAULT_PARAMETERS += [