diff --git a/libcxx/docs/DesignDocs/HeaderRemovalPolicy.rst b/libcxx/docs/DesignDocs/HeaderRemovalPolicy.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/DesignDocs/HeaderRemovalPolicy.rst @@ -0,0 +1,71 @@ +===================== +Header Removal Policy +===================== + +Policy +------ + +Libc++ is in the process of splitting larger headers into smaller modular +headers. This makes it possible to remove these large headers from other +headers. For example, instead of including ```` entirely it is +possible to only include only the headers for the algorithms used. When the +Standard indirectly adds additional header includes, using the smaller headers +aids reducing the growth of top-level headers. For example ```` uses +``std::chrono::nanoseconds`` and included ````. In C++20 ```` +requires ```` which adds several other headers (like ````, +````, ````) which are not needed in ````. + +The benefit of using minimal headers is that the size of libc++'s top-level +headers becomes smaller. This improves the compilation time when users include +a top-level header. + +A disadvantage is that users unknowingly depend on these transitive includes. +Thus removing an include might break their build after upgrading a newer +version of libc++. For example ```` is a header that is not +included often, but it happens to work. + +To avoid breaking users libc++ will not remove headers from a top-level header +of released C++ versions. Libc++ will only remove headers for the next language +version; that is the version the C++ committee is working on. After C++23 +becomes an ISO Standard libc++ will no longer remove headers from C++23. +Instead when removing a header it will be done in C++26. + +The removal is done by the following code for C++23. + +.. code-block:: cpp + + #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 + # include + # include + # include + #endif + + +When users define ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`` it will not include +these headers regardless of the language version. This aids users to transition +to a newer language version. Secondly it aids users who want to use smaller +headers in older language versions. + +One of the issues for libc++ with transitive includes is that these includes +may create dependency cycles and cause the validation script +``libcxx/utils/graph_header_deps.py`` to have false positives. To ignore an +include from the validation script, add a comment containing ``IGNORE-CYCLE``. +This should only be used when there is a cycle and it has been verified it is a +false positive. + +.. code-block:: cpp + + #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 + # include // IGNORE-CYCLE due to + #endif + + +Rationale +--------- + +Removing headers is not only an issue for software developers, but also for +vendors. When a vendor updates libc++ several of their upstream packages might +fail to compile, forcing them to fix these packages or file bug at their +upstream packages. Usually upgrading software to a new language standard is +done explicitly by software developers. This means they most likely will +discover and fix the missing includes, lessening the burden for the vendors. diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -45,6 +45,21 @@ Deprecations and Removals ------------------------- +- Several unneeded includes have been removed from libc++. The headers are + removed based on the language version used. The following headers have been + removed when not needed: + + - C++20: ``chrono`` + - C++2b: ``algorithm``, ``array``, ``atomic``, ``bit``, ``chrono``, + ``climits``, ``cmath``, ``compare``, ``concepts``, ``cstdlib``, + ``cstring``, ``ctime``, ``exception``, ``functional``, + ``initializer_list``, ``iosfwd``, ``iterator``, ``memory``, ``new``, + ``optional``, ``ratio``, ``stdexcept``, ``tuple``, ``typeinfo``, + ``unordered_map``, ``utility``, ``variant``, ``vector``. + + + When compiling with ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`` these headers are + removed in all language versions. Upcoming Deprecations and Removals ---------------------------------- diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -175,6 +175,7 @@ DesignDocs/ExtendedCXX03Support DesignDocs/FeatureTestMacros DesignDocs/FileTimeType + DesignDocs/HeaderRemovalPolicy DesignDocs/NoexceptPolicy DesignDocs/ThreadingSupportAPI DesignDocs/UniquePtrTrivialAbi diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -1899,8 +1899,11 @@ #include <__algorithm/unwrap_iter.h> #include <__algorithm/upper_bound.h> -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES -# include +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 +# include // IGNORE-CYCLE due to +#endif + +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/any b/libcxx/include/any --- a/libcxx/include/any +++ b/libcxx/include/any @@ -94,8 +94,8 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES -# include +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 +# include // IGNORE-CYCLE due to #endif #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/array b/libcxx/include/array --- a/libcxx/include/array +++ b/libcxx/include/array @@ -123,7 +123,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/atomic b/libcxx/include/atomic --- a/libcxx/include/atomic +++ b/libcxx/include/atomic @@ -534,8 +534,8 @@ # include <__threading_support> #endif -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES -# include +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 +# include // IGNORE-CYCLE due to #endif #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/bit b/libcxx/include/bit --- a/libcxx/include/bit +++ b/libcxx/include/bit @@ -71,7 +71,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/charconv b/libcxx/include/charconv --- a/libcxx/include/charconv +++ b/libcxx/include/charconv @@ -97,7 +97,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/chrono b/libcxx/include/chrono --- a/libcxx/include/chrono +++ b/libcxx/include/chrono @@ -683,6 +683,12 @@ #include <__config> #include +// Guarded by language version to avoid include cycles prior to C++20. +// (In C++20 it's solved by removing transitive headers.) +#if !defined(_LIBCPP_HAS_NO_LOCALIZATION) && _LIBCPP_STD_VER > 17 +# include +#endif + // standard-mandated includes #include diff --git a/libcxx/include/coroutine b/libcxx/include/coroutine --- a/libcxx/include/coroutine +++ b/libcxx/include/coroutine @@ -46,7 +46,7 @@ #include <__coroutine/trivial_awaitables.h> #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/deque b/libcxx/include/deque --- a/libcxx/include/deque +++ b/libcxx/include/deque @@ -185,7 +185,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/experimental/simd b/libcxx/include/experimental/simd --- a/libcxx/include/experimental/simd +++ b/libcxx/include/experimental/simd @@ -656,7 +656,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #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,7 +45,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include 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,7 +210,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif 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,7 +199,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list --- a/libcxx/include/forward_list +++ b/libcxx/include/forward_list @@ -195,7 +195,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/functional b/libcxx/include/functional --- a/libcxx/include/functional +++ b/libcxx/include/functional @@ -539,7 +539,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/future b/libcxx/include/future --- a/libcxx/include/future +++ b/libcxx/include/future @@ -378,8 +378,8 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES -# include +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 +# include // IGNORE-CYCLE due to #endif #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/iterator b/libcxx/include/iterator --- a/libcxx/include/iterator +++ b/libcxx/include/iterator @@ -724,7 +724,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/list b/libcxx/include/list --- a/libcxx/include/list +++ b/libcxx/include/list @@ -203,7 +203,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/locale b/libcxx/include/locale --- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -211,7 +211,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/map b/libcxx/include/map --- a/libcxx/include/map +++ b/libcxx/include/map @@ -546,7 +546,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/memory b/libcxx/include/memory --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -887,7 +887,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/mutex b/libcxx/include/mutex --- a/libcxx/include/mutex +++ b/libcxx/include/mutex @@ -198,7 +198,7 @@ #endif #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/numeric b/libcxx/include/numeric --- a/libcxx/include/numeric +++ b/libcxx/include/numeric @@ -163,7 +163,7 @@ #include <__numeric/transform_inclusive_scan.h> #include <__numeric/transform_reduce.h> -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/optional b/libcxx/include/optional --- a/libcxx/include/optional +++ b/libcxx/include/optional @@ -177,9 +177,12 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 +# include // IGNORE-CYCLE due to +#endif + +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include -# include # include # include # include diff --git a/libcxx/include/ostream b/libcxx/include/ostream --- a/libcxx/include/ostream +++ b/libcxx/include/ostream @@ -171,7 +171,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/random b/libcxx/include/random --- a/libcxx/include/random +++ b/libcxx/include/random @@ -1718,7 +1718,7 @@ #include <__random/weibull_distribution.h> #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/regex b/libcxx/include/regex --- a/libcxx/include/regex +++ b/libcxx/include/regex @@ -778,7 +778,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/set b/libcxx/include/set --- a/libcxx/include/set +++ b/libcxx/include/set @@ -485,7 +485,7 @@ #include <__utility/forward.h> #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/span b/libcxx/include/span --- a/libcxx/include/span +++ b/libcxx/include/span @@ -148,7 +148,7 @@ #include // for remove_cv, etc #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/stack b/libcxx/include/stack --- a/libcxx/include/stack +++ b/libcxx/include/stack @@ -107,7 +107,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/string b/libcxx/include/string --- a/libcxx/include/string +++ b/libcxx/include/string @@ -569,7 +569,7 @@ # include #endif -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/string_view b/libcxx/include/string_view --- a/libcxx/include/string_view +++ b/libcxx/include/string_view @@ -224,7 +224,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/thread b/libcxx/include/thread --- a/libcxx/include/thread +++ b/libcxx/include/thread @@ -99,8 +99,11 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES -# include +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 +# include // IGNORE-CYCLE due to +#endif + +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/tuple b/libcxx/include/tuple --- a/libcxx/include/tuple +++ b/libcxx/include/tuple @@ -220,7 +220,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/typeindex b/libcxx/include/typeindex --- a/libcxx/include/typeindex +++ b/libcxx/include/typeindex @@ -51,7 +51,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map --- a/libcxx/include/unordered_map +++ b/libcxx/include/unordered_map @@ -531,7 +531,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set --- a/libcxx/include/unordered_set +++ b/libcxx/include/unordered_set @@ -474,7 +474,7 @@ #include <__utility/forward.h> #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/utility b/libcxx/include/utility --- a/libcxx/include/utility +++ b/libcxx/include/utility @@ -243,7 +243,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/valarray b/libcxx/include/valarray --- a/libcxx/include/valarray +++ b/libcxx/include/valarray @@ -360,7 +360,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/variant b/libcxx/include/variant --- a/libcxx/include/variant +++ b/libcxx/include/variant @@ -228,7 +228,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include #endif diff --git a/libcxx/include/vector b/libcxx/include/vector --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -307,7 +307,7 @@ #include #include -#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include # include 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 @@ -81,598 +81,481 @@ // DO NOT MANUALLY EDIT ANYTHING BETWEEN THE MARKERS BELOW // GENERATED-MARKER -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_0 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.algorithm -// RUN: diff %S/transitive_includes/expected.algorithm %t.actual.algorithm +// RUN: rm -rf %S/transitive_includes +// RUN: mkdir %S/transitive_includes +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_0 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.algorithm #if defined(TEST_0) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_1 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.any -// RUN: diff %S/transitive_includes/expected.any %t.actual.any +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_1 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.any #if defined(TEST_1) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_2 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.array -// RUN: diff %S/transitive_includes/expected.array %t.actual.array +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_2 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.array #if defined(TEST_2) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_3 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.atomic -// RUN: diff %S/transitive_includes/expected.atomic %t.actual.atomic +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_3 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.atomic #if defined(TEST_3) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_4 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.barrier -// RUN: diff %S/transitive_includes/expected.barrier %t.actual.barrier +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_4 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.barrier #if defined(TEST_4) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_5 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.bit -// RUN: diff %S/transitive_includes/expected.bit %t.actual.bit +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_5 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.bit #if defined(TEST_5) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_6 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.bitset -// RUN: diff %S/transitive_includes/expected.bitset %t.actual.bitset +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_6 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.bitset #if defined(TEST_6) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_7 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cassert -// RUN: diff %S/transitive_includes/expected.cassert %t.actual.cassert +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_7 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cassert #if defined(TEST_7) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_8 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ccomplex -// RUN: diff %S/transitive_includes/expected.ccomplex %t.actual.ccomplex +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_8 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ccomplex #if defined(TEST_8) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_9 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cctype -// RUN: diff %S/transitive_includes/expected.cctype %t.actual.cctype +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_9 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cctype #if defined(TEST_9) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_10 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cerrno -// RUN: diff %S/transitive_includes/expected.cerrno %t.actual.cerrno +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_10 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cerrno #if defined(TEST_10) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_11 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cfenv -// RUN: diff %S/transitive_includes/expected.cfenv %t.actual.cfenv +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_11 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cfenv #if defined(TEST_11) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_12 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cfloat -// RUN: diff %S/transitive_includes/expected.cfloat %t.actual.cfloat +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_12 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cfloat #if defined(TEST_12) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_13 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.charconv -// RUN: diff %S/transitive_includes/expected.charconv %t.actual.charconv +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_13 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.charconv #if defined(TEST_13) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_14 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.chrono -// RUN: diff %S/transitive_includes/expected.chrono %t.actual.chrono +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_14 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.chrono #if defined(TEST_14) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_15 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cinttypes -// RUN: diff %S/transitive_includes/expected.cinttypes %t.actual.cinttypes +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_15 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cinttypes #if defined(TEST_15) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_16 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ciso646 -// RUN: diff %S/transitive_includes/expected.ciso646 %t.actual.ciso646 +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_16 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ciso646 #if defined(TEST_16) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_17 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.climits -// RUN: diff %S/transitive_includes/expected.climits %t.actual.climits +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_17 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.climits #if defined(TEST_17) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_18 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.clocale -// RUN: diff %S/transitive_includes/expected.clocale %t.actual.clocale +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_18 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.clocale #if defined(TEST_18) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_19 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cmath -// RUN: diff %S/transitive_includes/expected.cmath %t.actual.cmath +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_19 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cmath #if defined(TEST_19) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_20 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.codecvt -// RUN: diff %S/transitive_includes/expected.codecvt %t.actual.codecvt +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_20 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.codecvt #if defined(TEST_20) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_21 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.compare -// RUN: diff %S/transitive_includes/expected.compare %t.actual.compare +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_21 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.compare #if defined(TEST_21) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_22 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.complex -// RUN: diff %S/transitive_includes/expected.complex %t.actual.complex +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_22 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.complex #if defined(TEST_22) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_24 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.concepts -// RUN: diff %S/transitive_includes/expected.concepts %t.actual.concepts +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_24 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.concepts #if defined(TEST_24) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_25 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.condition_variable -// RUN: diff %S/transitive_includes/expected.condition_variable %t.actual.condition_variable +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_25 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.condition_variable #if defined(TEST_25) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_26 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.coroutine -// RUN: diff %S/transitive_includes/expected.coroutine %t.actual.coroutine +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_26 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.coroutine #if defined(TEST_26) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_27 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.csetjmp -// RUN: diff %S/transitive_includes/expected.csetjmp %t.actual.csetjmp +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_27 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.csetjmp #if defined(TEST_27) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_28 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.csignal -// RUN: diff %S/transitive_includes/expected.csignal %t.actual.csignal +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_28 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.csignal #if defined(TEST_28) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_29 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cstdarg -// RUN: diff %S/transitive_includes/expected.cstdarg %t.actual.cstdarg +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_29 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cstdarg #if defined(TEST_29) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_30 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cstdbool -// RUN: diff %S/transitive_includes/expected.cstdbool %t.actual.cstdbool +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_30 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cstdbool #if defined(TEST_30) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_31 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cstddef -// RUN: diff %S/transitive_includes/expected.cstddef %t.actual.cstddef +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_31 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cstddef #if defined(TEST_31) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_32 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cstdint -// RUN: diff %S/transitive_includes/expected.cstdint %t.actual.cstdint +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_32 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cstdint #if defined(TEST_32) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_33 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cstdio -// RUN: diff %S/transitive_includes/expected.cstdio %t.actual.cstdio +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_33 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cstdio #if defined(TEST_33) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_34 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cstdlib -// RUN: diff %S/transitive_includes/expected.cstdlib %t.actual.cstdlib +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_34 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cstdlib #if defined(TEST_34) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_35 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cstring -// RUN: diff %S/transitive_includes/expected.cstring %t.actual.cstring +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_35 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cstring #if defined(TEST_35) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_36 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ctgmath -// RUN: diff %S/transitive_includes/expected.ctgmath %t.actual.ctgmath +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_36 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ctgmath #if defined(TEST_36) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_37 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ctime -// RUN: diff %S/transitive_includes/expected.ctime %t.actual.ctime +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_37 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ctime #if defined(TEST_37) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_39 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cuchar -// RUN: diff %S/transitive_includes/expected.cuchar %t.actual.cuchar +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_39 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cuchar #if defined(TEST_39) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_40 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cwchar -// RUN: diff %S/transitive_includes/expected.cwchar %t.actual.cwchar +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_40 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cwchar #if defined(TEST_40) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_41 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.cwctype -// RUN: diff %S/transitive_includes/expected.cwctype %t.actual.cwctype +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_41 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.cwctype #if defined(TEST_41) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_42 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.deque -// RUN: diff %S/transitive_includes/expected.deque %t.actual.deque +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_42 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.deque #if defined(TEST_42) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_44 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.exception -// RUN: diff %S/transitive_includes/expected.exception %t.actual.exception +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_44 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.exception #if defined(TEST_44) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_45 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.execution -// RUN: diff %S/transitive_includes/expected.execution %t.actual.execution +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_45 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.execution #if defined(TEST_45) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_47 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.filesystem -// RUN: diff %S/transitive_includes/expected.filesystem %t.actual.filesystem +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_47 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.filesystem #if defined(TEST_47) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_49 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.format -// RUN: diff %S/transitive_includes/expected.format %t.actual.format +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_49 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.format #if defined(TEST_49) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_50 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.forward_list -// RUN: diff %S/transitive_includes/expected.forward_list %t.actual.forward_list +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_50 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.forward_list #if defined(TEST_50) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_51 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.fstream -// RUN: diff %S/transitive_includes/expected.fstream %t.actual.fstream +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_51 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.fstream #if defined(TEST_51) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_52 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.functional -// RUN: diff %S/transitive_includes/expected.functional %t.actual.functional +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_52 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.functional #if defined(TEST_52) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_53 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.future -// RUN: diff %S/transitive_includes/expected.future %t.actual.future +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_53 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.future #if defined(TEST_53) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_54 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.initializer_list -// RUN: diff %S/transitive_includes/expected.initializer_list %t.actual.initializer_list +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_54 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.initializer_list #if defined(TEST_54) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_56 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.iomanip -// RUN: diff %S/transitive_includes/expected.iomanip %t.actual.iomanip +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_56 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.iomanip #if defined(TEST_56) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_57 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ios -// RUN: diff %S/transitive_includes/expected.ios %t.actual.ios +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_57 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ios #if defined(TEST_57) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_58 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.iosfwd -// RUN: diff %S/transitive_includes/expected.iosfwd %t.actual.iosfwd +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_58 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.iosfwd #if defined(TEST_58) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_59 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.iostream -// RUN: diff %S/transitive_includes/expected.iostream %t.actual.iostream +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_59 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.iostream #if defined(TEST_59) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_60 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.istream -// RUN: diff %S/transitive_includes/expected.istream %t.actual.istream +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_60 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.istream #if defined(TEST_60) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_61 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.iterator -// RUN: diff %S/transitive_includes/expected.iterator %t.actual.iterator +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_61 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.iterator #if defined(TEST_61) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_62 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.latch -// RUN: diff %S/transitive_includes/expected.latch %t.actual.latch +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_62 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.latch #if defined(TEST_62) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_63 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.limits -// RUN: diff %S/transitive_includes/expected.limits %t.actual.limits +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_63 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.limits #if defined(TEST_63) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_65 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.list -// RUN: diff %S/transitive_includes/expected.list %t.actual.list +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_65 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.list #if defined(TEST_65) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_66 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.locale -// RUN: diff %S/transitive_includes/expected.locale %t.actual.locale +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_66 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.locale #if defined(TEST_66) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_68 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.map -// RUN: diff %S/transitive_includes/expected.map %t.actual.map +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_68 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.map #if defined(TEST_68) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_70 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.memory -// RUN: diff %S/transitive_includes/expected.memory %t.actual.memory +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_70 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.memory #if defined(TEST_70) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_71 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.mutex -// RUN: diff %S/transitive_includes/expected.mutex %t.actual.mutex +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_71 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.mutex #if defined(TEST_71) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_72 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.new -// RUN: diff %S/transitive_includes/expected.new %t.actual.new +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_72 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.new #if defined(TEST_72) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_73 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.numbers -// RUN: diff %S/transitive_includes/expected.numbers %t.actual.numbers +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_73 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.numbers #if defined(TEST_73) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_74 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.numeric -// RUN: diff %S/transitive_includes/expected.numeric %t.actual.numeric +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_74 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.numeric #if defined(TEST_74) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_75 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.optional -// RUN: diff %S/transitive_includes/expected.optional %t.actual.optional +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_75 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.optional #if defined(TEST_75) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_76 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ostream -// RUN: diff %S/transitive_includes/expected.ostream %t.actual.ostream +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_76 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ostream #if defined(TEST_76) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_77 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.queue -// RUN: diff %S/transitive_includes/expected.queue %t.actual.queue +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_77 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.queue #if defined(TEST_77) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_78 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.random -// RUN: diff %S/transitive_includes/expected.random %t.actual.random +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_78 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.random #if defined(TEST_78) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_79 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ranges -// RUN: diff %S/transitive_includes/expected.ranges %t.actual.ranges +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_79 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ranges #if defined(TEST_79) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_80 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ratio -// RUN: diff %S/transitive_includes/expected.ratio %t.actual.ratio +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_80 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ratio #if defined(TEST_80) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_81 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.regex -// RUN: diff %S/transitive_includes/expected.regex %t.actual.regex +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_81 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.regex #if defined(TEST_81) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_82 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.scoped_allocator -// RUN: diff %S/transitive_includes/expected.scoped_allocator %t.actual.scoped_allocator +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_82 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.scoped_allocator #if defined(TEST_82) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_83 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.semaphore -// RUN: diff %S/transitive_includes/expected.semaphore %t.actual.semaphore +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_83 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.semaphore #if defined(TEST_83) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_84 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.set -// RUN: diff %S/transitive_includes/expected.set %t.actual.set +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_84 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.set #if defined(TEST_84) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_86 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.shared_mutex -// RUN: diff %S/transitive_includes/expected.shared_mutex %t.actual.shared_mutex +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_86 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.shared_mutex #if defined(TEST_86) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_87 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.span -// RUN: diff %S/transitive_includes/expected.span %t.actual.span +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_87 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.span #if defined(TEST_87) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_88 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.sstream -// RUN: diff %S/transitive_includes/expected.sstream %t.actual.sstream +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_88 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.sstream #if defined(TEST_88) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_89 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.stack -// RUN: diff %S/transitive_includes/expected.stack %t.actual.stack +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_89 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.stack #if defined(TEST_89) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_93 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.stdexcept -// RUN: diff %S/transitive_includes/expected.stdexcept %t.actual.stdexcept +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_93 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.stdexcept #if defined(TEST_93) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_97 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.streambuf -// RUN: diff %S/transitive_includes/expected.streambuf %t.actual.streambuf +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_97 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.streambuf #if defined(TEST_97) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_98 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.string -// RUN: diff %S/transitive_includes/expected.string %t.actual.string +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_98 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.string #if defined(TEST_98) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_100 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.string_view -// RUN: diff %S/transitive_includes/expected.string_view %t.actual.string_view +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_100 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.string_view #if defined(TEST_100) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_101 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.strstream -// RUN: diff %S/transitive_includes/expected.strstream %t.actual.strstream +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_101 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.strstream #if defined(TEST_101) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_102 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.system_error -// RUN: diff %S/transitive_includes/expected.system_error %t.actual.system_error +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_102 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.system_error #if defined(TEST_102) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_104 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.thread -// RUN: diff %S/transitive_includes/expected.thread %t.actual.thread +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_104 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.thread #if defined(TEST_104) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_105 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.tuple -// RUN: diff %S/transitive_includes/expected.tuple %t.actual.tuple +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_105 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.tuple #if defined(TEST_105) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_106 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.type_traits -// RUN: diff %S/transitive_includes/expected.type_traits %t.actual.type_traits +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_106 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.type_traits #if defined(TEST_106) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_107 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.typeindex -// RUN: diff %S/transitive_includes/expected.typeindex %t.actual.typeindex +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_107 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.typeindex #if defined(TEST_107) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_108 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.typeinfo -// RUN: diff %S/transitive_includes/expected.typeinfo %t.actual.typeinfo +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_108 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.typeinfo #if defined(TEST_108) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_110 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.unordered_map -// RUN: diff %S/transitive_includes/expected.unordered_map %t.actual.unordered_map +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_110 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.unordered_map #if defined(TEST_110) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_111 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.unordered_set -// RUN: diff %S/transitive_includes/expected.unordered_set %t.actual.unordered_set +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_111 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.unordered_set #if defined(TEST_111) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_112 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.utility -// RUN: diff %S/transitive_includes/expected.utility %t.actual.utility +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_112 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.utility #if defined(TEST_112) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_113 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.valarray -// RUN: diff %S/transitive_includes/expected.valarray %t.actual.valarray +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_113 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.valarray #if defined(TEST_113) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_114 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.variant -// RUN: diff %S/transitive_includes/expected.variant %t.actual.variant +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_114 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.variant #if defined(TEST_114) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_115 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.vector -// RUN: diff %S/transitive_includes/expected.vector %t.actual.vector +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_115 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.vector #if defined(TEST_115) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_116 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.version -// RUN: diff %S/transitive_includes/expected.version %t.actual.version +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_116 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.version #if defined(TEST_116) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_119 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_algorithm -// RUN: diff %S/transitive_includes/expected.experimental_algorithm %t.actual.experimental_algorithm +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_119 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_algorithm #if defined(TEST_119) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_120 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_coroutine -// RUN: diff %S/transitive_includes/expected.experimental_coroutine %t.actual.experimental_coroutine +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_120 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_coroutine #if defined(TEST_120) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_121 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_deque -// RUN: diff %S/transitive_includes/expected.experimental_deque %t.actual.experimental_deque +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_121 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_deque #if defined(TEST_121) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_122 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_forward_list -// RUN: diff %S/transitive_includes/expected.experimental_forward_list %t.actual.experimental_forward_list +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_122 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_forward_list #if defined(TEST_122) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_123 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_functional -// RUN: diff %S/transitive_includes/expected.experimental_functional %t.actual.experimental_functional +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_123 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_functional #if defined(TEST_123) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_124 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_iterator -// RUN: diff %S/transitive_includes/expected.experimental_iterator %t.actual.experimental_iterator +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_124 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_iterator #if defined(TEST_124) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_125 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_list -// RUN: diff %S/transitive_includes/expected.experimental_list %t.actual.experimental_list +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_125 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_list #if defined(TEST_125) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_126 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_map -// RUN: diff %S/transitive_includes/expected.experimental_map %t.actual.experimental_map +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_126 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_map #if defined(TEST_126) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_127 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_memory_resource -// RUN: diff %S/transitive_includes/expected.experimental_memory_resource %t.actual.experimental_memory_resource +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_127 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_memory_resource #if defined(TEST_127) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_128 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_propagate_const -// RUN: diff %S/transitive_includes/expected.experimental_propagate_const %t.actual.experimental_propagate_const +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_128 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_propagate_const #if defined(TEST_128) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_129 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_regex -// RUN: diff %S/transitive_includes/expected.experimental_regex %t.actual.experimental_regex +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_129 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_regex #if defined(TEST_129) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_130 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_set -// RUN: diff %S/transitive_includes/expected.experimental_set %t.actual.experimental_set +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_130 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_set #if defined(TEST_130) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_131 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_simd -// RUN: diff %S/transitive_includes/expected.experimental_simd %t.actual.experimental_simd +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_131 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_simd #if defined(TEST_131) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_132 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_string -// RUN: diff %S/transitive_includes/expected.experimental_string %t.actual.experimental_string +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_132 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_string #if defined(TEST_132) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_133 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_type_traits -// RUN: diff %S/transitive_includes/expected.experimental_type_traits %t.actual.experimental_type_traits +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_133 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_type_traits #if defined(TEST_133) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_134 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_unordered_map -// RUN: diff %S/transitive_includes/expected.experimental_unordered_map %t.actual.experimental_unordered_map +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_134 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_unordered_map #if defined(TEST_134) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_135 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_unordered_set -// RUN: diff %S/transitive_includes/expected.experimental_unordered_set %t.actual.experimental_unordered_set +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_135 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_unordered_set #if defined(TEST_135) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_136 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_utility -// RUN: diff %S/transitive_includes/expected.experimental_utility %t.actual.experimental_utility +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_136 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_utility #if defined(TEST_136) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_137 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.experimental_vector -// RUN: diff %S/transitive_includes/expected.experimental_vector %t.actual.experimental_vector +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_137 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.experimental_vector #if defined(TEST_137) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_138 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ext_hash_map -// RUN: diff %S/transitive_includes/expected.ext_hash_map %t.actual.ext_hash_map +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_138 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ext_hash_map #if defined(TEST_138) #include #endif -// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_139 2>&1 | %{python} %S/transitive_includes.sanitize.py > %t.actual.ext_hash_set -// RUN: diff %S/transitive_includes/expected.ext_hash_set %t.actual.ext_hash_set +// RUN: %{cxx} %s %{flags} %{compile_flags} --trace-includes -fsyntax-only -DTEST_139 2>&1 | %{python} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.ext_hash_set #if defined(TEST_139) #include #endif 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,7 +1,6 @@ algorithm atomic bit -chrono climits cmath compare @@ -14,7 +13,6 @@ exception initializer_list iosfwd -iterator limits memory new @@ -23,6 +21,4 @@ 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,6 +1,5 @@ any atomic -chrono climits cmath compare @@ -13,7 +12,6 @@ exception initializer_list iosfwd -iterator limits memory new @@ -22,6 +20,4 @@ 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,29 +1,14 @@ -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,8 +1,5 @@ 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,6 +1,5 @@ atomic barrier -chrono climits cmath compare @@ -13,7 +12,6 @@ exception initializer_list iosfwd -iterator limits memory new @@ -22,6 +20,4 @@ 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,7 +2,6 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit bitset cctype -chrono climits cmath compare @@ -18,14 +14,11 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory new -optional ratio stdexcept string @@ -33,8 +26,4 @@ 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,12 +1,8 @@ -algorithm -array atomic -bit bitset ccomplex cctype cerrno -chrono climits cmath compare @@ -22,18 +18,15 @@ cwchar cwctype exception -functional initializer_list ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio sstream @@ -45,8 +38,4 @@ 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 @@ -7,7 +7,6 @@ cstdlib cstring initializer_list -iosfwd limits type_traits version diff --git a/libcxx/test/libcxx/transitive_includes/expected.chrono b/libcxx/test/libcxx/transitive_includes/expected.chrono --- a/libcxx/test/libcxx/transitive_includes/expected.chrono +++ b/libcxx/test/libcxx/transitive_includes/expected.chrono @@ -1,11 +1,41 @@ +array +atomic +bit +cctype +cerrno +charconv chrono climits cmath compare +concepts +cstdarg cstddef cstdint +cstdio +cstdlib +cstring ctime +cwchar +cwctype +exception +format +initializer_list +ios +iosfwd limits +locale +memory +mutex +new +optional ratio +stdexcept +streambuf +string +string_view +system_error +tuple type_traits +typeinfo 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath codecvt @@ -19,15 +15,12 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory mutex new -optional ratio stdexcept string @@ -36,8 +29,4 @@ 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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -21,18 +17,15 @@ cwchar cwctype exception -functional initializer_list ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio sstream @@ -44,8 +37,4 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -19,14 +15,11 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory new -optional ratio stdexcept string @@ -35,8 +28,4 @@ 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,7 +4,6 @@ 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,12 +1,8 @@ -algorithm -array atomic -bit bitset ccomplex cctype cerrno -chrono climits cmath compare @@ -23,18 +19,15 @@ cwchar cwctype exception -functional initializer_list ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio sstream @@ -46,8 +39,4 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -14,21 +10,14 @@ 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,7 +1,6 @@ algorithm atomic bit -chrono climits cmath compare @@ -15,7 +14,6 @@ experimental/algorithm initializer_list iosfwd -iterator limits memory new @@ -24,6 +22,4 @@ 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,5 +1,4 @@ atomic -chrono climits cmath compare @@ -13,7 +12,6 @@ experimental/coroutine initializer_list iosfwd -iterator limits memory new @@ -22,6 +20,4 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -17,21 +13,15 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -17,21 +13,15 @@ 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,8 +1,5 @@ -algorithm array atomic -bit -chrono climits cmath compare @@ -17,7 +14,6 @@ functional initializer_list iosfwd -iterator limits memory new @@ -28,7 +24,5 @@ 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,7 +14,5 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -16,22 +12,16 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -16,10 +12,8 @@ experimental/map experimental/memory_resource experimental/utility -functional initializer_list iosfwd -iterator limits map memory @@ -30,8 +24,5 @@ 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,5 +1,4 @@ atomic -chrono climits cmath compare @@ -14,7 +13,6 @@ experimental/utility initializer_list iosfwd -iterator limits memory new @@ -24,5 +22,4 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -23,15 +19,12 @@ experimental/regex experimental/string experimental/utility -functional initializer_list iosfwd -iterator limits memory mutex new -optional ratio regex stdexcept @@ -41,8 +34,6 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -16,10 +12,8 @@ experimental/memory_resource experimental/set experimental/utility -functional initializer_list iosfwd -iterator limits memory new @@ -30,8 +24,5 @@ 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,34 +1,16 @@ -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,9 +1,5 @@ -algorithm -array atomic -bit cctype -chrono climits cmath compare @@ -20,14 +16,11 @@ experimental/memory_resource experimental/string experimental/utility -functional initializer_list iosfwd -iterator limits memory new -optional ratio stdexcept string @@ -35,8 +28,5 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -16,10 +12,8 @@ experimental/memory_resource experimental/unordered_map experimental/utility -functional initializer_list iosfwd -iterator limits memory new @@ -31,6 +25,4 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -16,10 +12,8 @@ experimental/memory_resource experimental/unordered_set experimental/utility -functional initializer_list iosfwd -iterator limits memory new @@ -29,9 +23,6 @@ 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,7 +5,6 @@ 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,7 +1,4 @@ -algorithm atomic -bit -chrono climits cmath compare @@ -17,7 +14,6 @@ experimental/vector initializer_list iosfwd -iterator limits memory new @@ -27,6 +23,5 @@ 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,7 +3,6 @@ atomic bit cctype -chrono climits cmath compare @@ -21,7 +20,6 @@ functional initializer_list iosfwd -iterator limits memory new @@ -34,7 +32,5 @@ 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,7 +3,6 @@ atomic bit cctype -chrono climits cmath compare @@ -21,7 +20,6 @@ functional initializer_list iosfwd -iterator limits memory new @@ -34,7 +32,5 @@ 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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -21,19 +17,16 @@ cwctype exception filesystem -functional initializer_list iomanip ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio stdexcept @@ -44,8 +37,4 @@ 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,11 +1,9 @@ -algorithm array atomic bit cctype cerrno charconv -chrono climits cmath compare @@ -21,11 +19,9 @@ cwctype exception format -functional initializer_list ios iosfwd -iterator limits locale memory @@ -41,8 +37,4 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -14,21 +10,14 @@ 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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -22,19 +18,16 @@ exception filesystem fstream -functional initializer_list iomanip ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio stdexcept @@ -45,8 +38,4 @@ 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,8 +1,5 @@ -algorithm array atomic -bit -chrono climits cmath compare @@ -16,7 +13,6 @@ functional initializer_list iosfwd -iterator limits memory new @@ -27,7 +23,5 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -18,16 +14,13 @@ cwchar cwctype exception -functional future initializer_list iosfwd -iterator limits memory mutex new -optional ratio stdexcept string @@ -37,8 +30,4 @@ 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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -20,19 +16,16 @@ cwchar cwctype exception -functional initializer_list iomanip ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio stdexcept @@ -43,8 +36,4 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -18,16 +14,13 @@ cwchar cwctype exception -functional initializer_list ios iosfwd -iterator limits memory mutex new -optional ratio stdexcept string @@ -36,8 +29,4 @@ 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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -20,19 +16,16 @@ cwchar cwctype exception -functional initializer_list ios iosfwd iostream istream -iterator limits locale memory mutex new -optional ostream ratio stdexcept @@ -43,8 +36,4 @@ 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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -20,18 +16,15 @@ cwchar cwctype exception -functional initializer_list ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio stdexcept @@ -42,8 +35,4 @@ 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,7 +13,5 @@ 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,8 +1,5 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -13,22 +9,15 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -19,17 +15,14 @@ cwchar cwctype exception -functional initializer_list ios iosfwd -iterator limits locale memory mutex new -optional ratio stdexcept streambuf @@ -39,8 +32,4 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -13,10 +9,8 @@ cstring ctime exception -functional initializer_list iosfwd -iterator limits map memory @@ -27,8 +21,4 @@ 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,5 +1,4 @@ atomic -chrono climits cmath compare @@ -12,7 +11,6 @@ exception initializer_list iosfwd -iterator limits memory new @@ -21,6 +19,4 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -18,15 +14,12 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory mutex new -optional ratio stdexcept string @@ -35,8 +28,4 @@ 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,34 +1,8 @@ -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,27 +1,15 @@ -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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -20,17 +16,14 @@ cwchar cwctype exception -functional initializer_list ios iosfwd -iterator limits locale memory mutex new -optional ostream ratio stdexcept @@ -41,8 +34,4 @@ 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,8 +1,5 @@ -algorithm array atomic -bit -chrono climits cmath compare @@ -17,7 +14,6 @@ functional initializer_list iosfwd -iterator limits memory new @@ -29,7 +25,5 @@ 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,9 +1,6 @@ -algorithm -array atomic bit cctype -chrono climits cmath compare @@ -17,15 +14,12 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory new numeric -optional random ratio stdexcept @@ -34,8 +28,5 @@ 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,9 +1,4 @@ -algorithm array -atomic -bit -chrono -climits cmath compare concepts @@ -11,25 +6,17 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -19,15 +15,12 @@ cwctype deque exception -functional initializer_list iosfwd -iterator limits memory mutex new -optional ratio regex stdexcept @@ -37,8 +30,5 @@ 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,5 +1,4 @@ atomic -chrono climits cmath compare @@ -12,7 +11,6 @@ exception initializer_list iosfwd -iterator limits memory new @@ -22,6 +20,4 @@ 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,8 +1,5 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -13,10 +9,8 @@ cstring ctime exception -functional initializer_list iosfwd -iterator limits memory new @@ -27,8 +21,4 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -18,14 +14,11 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory new -optional ratio shared_mutex stdexcept @@ -35,8 +28,4 @@ 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,34 +1,15 @@ -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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -20,18 +16,15 @@ cwchar cwctype exception -functional initializer_list ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio sstream @@ -43,8 +36,4 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -14,22 +10,15 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -18,16 +14,13 @@ cwchar cwctype exception -functional initializer_list ios iosfwd -iterator limits memory mutex new -optional ratio stdexcept streambuf @@ -37,8 +30,4 @@ 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,9 +1,5 @@ -algorithm -array atomic -bit cctype -chrono climits cmath compare @@ -17,14 +13,11 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory new -optional ratio stdexcept string @@ -32,8 +25,4 @@ 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,10 +1,4 @@ -algorithm -array -atomic -bit cctype -chrono -climits cmath compare concepts @@ -13,26 +7,13 @@ 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,11 +1,7 @@ -algorithm -array atomic -bit bitset cctype cerrno -chrono climits cmath compare @@ -20,18 +16,15 @@ cwchar cwctype exception -functional initializer_list ios iosfwd istream -iterator limits locale memory mutex new -optional ostream ratio stdexcept @@ -43,8 +36,4 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -18,14 +14,11 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory new -optional ratio stdexcept string @@ -34,8 +27,4 @@ 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,10 +1,6 @@ -algorithm -array atomic -bit cctype cerrno -chrono climits cmath compare @@ -18,14 +14,11 @@ cwchar cwctype exception -functional initializer_list iosfwd -iterator limits memory new -optional ratio stdexcept string @@ -35,8 +28,4 @@ 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,14 +2,7 @@ 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,12 +4,8 @@ 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,7 +1,4 @@ -algorithm atomic -bit -chrono climits cmath compare @@ -14,7 +11,6 @@ exception initializer_list iosfwd -iterator limits memory new @@ -25,6 +21,4 @@ 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,8 +1,4 @@ -algorithm -array atomic -bit -chrono climits cmath compare @@ -13,10 +9,8 @@ cstring ctime exception -functional initializer_list iosfwd -iterator limits memory new @@ -26,9 +20,5 @@ 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,7 +4,6 @@ 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,34 +1,15 @@ -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,12 +6,9 @@ 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,7 +1,4 @@ -algorithm atomic -bit -chrono climits cmath compare @@ -14,7 +11,6 @@ exception initializer_list iosfwd -iterator limits memory new @@ -23,7 +19,5 @@ tuple type_traits typeinfo -utility -variant vector version diff --git a/libcxx/utils/graph_header_deps.py b/libcxx/utils/graph_header_deps.py --- a/libcxx/utils/graph_header_deps.py +++ b/libcxx/utils/graph_header_deps.py @@ -69,7 +69,15 @@ local_includes.append(m.group(1)) m = re.match(r'\s*#\s*include\s+<([^>]*)>', line) if m is not None: - system_includes.append(m.group(1)) + # Since libc++ keeps transitive includes guarded by the + # language version some cycles can be ignored. For example + # before C++20 several headers included without using + # it. In C++20 conditionally includes in + # C++20. This causes multiple cycles in this script that can't + # happen in practice. Since the script uses a regex instead of + # a parser use a magic word. + if re.search(r'IGNORE-CYCLE', line) is None: + system_includes.append(m.group(1)) fully_qualified_includes = [ locate_header_file(h, options.search_dirs)