[libcxx-commits] [libcxx] 3d68a67 - [libc++] Tests transitive includes for all C++ versions.

Mark de Wever via libcxx-commits libcxx-commits at lists.llvm.org
Wed Aug 24 10:23:34 PDT 2022


Author: Mark de Wever
Date: 2022-08-24T19:23:23+02:00
New Revision: 3d68a67fe6718a6f9ac5e09e2586281be7f7eb70

URL: https://github.com/llvm/llvm-project/commit/3d68a67fe6718a6f9ac5e09e2586281be7f7eb70
DIFF: https://github.com/llvm/llvm-project/commit/3d68a67fe6718a6f9ac5e09e2586281be7f7eb70.diff

LOG: [libc++] Tests transitive includes for all C++ versions.

D132284 has an approach to reduce the number of transitive includes
based on the language version used. This requires to be able to validate
changes in transitive includes in all language versions.

Due to issues in the experimental library c++03 will be done separately.

Reviewed By: #libc, ldionne

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

Added: 
    libcxx/test/libcxx/transitive_includes/cxx11/expected.algorithm
    libcxx/test/libcxx/transitive_includes/cxx11/expected.any
    libcxx/test/libcxx/transitive_includes/cxx11/expected.array
    libcxx/test/libcxx/transitive_includes/cxx11/expected.atomic
    libcxx/test/libcxx/transitive_includes/cxx11/expected.barrier
    libcxx/test/libcxx/transitive_includes/cxx11/expected.bit
    libcxx/test/libcxx/transitive_includes/cxx11/expected.bitset
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cassert
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ccomplex
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cctype
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cerrno
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cfenv
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cfloat
    libcxx/test/libcxx/transitive_includes/cxx11/expected.charconv
    libcxx/test/libcxx/transitive_includes/cxx11/expected.chrono
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cinttypes
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ciso646
    libcxx/test/libcxx/transitive_includes/cxx11/expected.climits
    libcxx/test/libcxx/transitive_includes/cxx11/expected.clocale
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cmath
    libcxx/test/libcxx/transitive_includes/cxx11/expected.codecvt
    libcxx/test/libcxx/transitive_includes/cxx11/expected.compare
    libcxx/test/libcxx/transitive_includes/cxx11/expected.complex
    libcxx/test/libcxx/transitive_includes/cxx11/expected.concepts
    libcxx/test/libcxx/transitive_includes/cxx11/expected.condition_variable
    libcxx/test/libcxx/transitive_includes/cxx11/expected.coroutine
    libcxx/test/libcxx/transitive_includes/cxx11/expected.csetjmp
    libcxx/test/libcxx/transitive_includes/cxx11/expected.csignal
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdarg
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdbool
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cstddef
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdint
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdio
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdlib
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cstring
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ctgmath
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ctime
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cuchar
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cwchar
    libcxx/test/libcxx/transitive_includes/cxx11/expected.cwctype
    libcxx/test/libcxx/transitive_includes/cxx11/expected.deque
    libcxx/test/libcxx/transitive_includes/cxx11/expected.exception
    libcxx/test/libcxx/transitive_includes/cxx11/expected.execution
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_algorithm
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_coroutine
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_deque
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_forward_list
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_functional
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_iterator
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_list
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_map
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_memory_resource
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_propagate_const
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_regex
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_set
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_simd
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_string
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_type_traits
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_unordered_map
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_unordered_set
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_utility
    libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_vector
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ext_hash_map
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ext_hash_set
    libcxx/test/libcxx/transitive_includes/cxx11/expected.filesystem
    libcxx/test/libcxx/transitive_includes/cxx11/expected.format
    libcxx/test/libcxx/transitive_includes/cxx11/expected.forward_list
    libcxx/test/libcxx/transitive_includes/cxx11/expected.fstream
    libcxx/test/libcxx/transitive_includes/cxx11/expected.functional
    libcxx/test/libcxx/transitive_includes/cxx11/expected.future
    libcxx/test/libcxx/transitive_includes/cxx11/expected.initializer_list
    libcxx/test/libcxx/transitive_includes/cxx11/expected.iomanip
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ios
    libcxx/test/libcxx/transitive_includes/cxx11/expected.iosfwd
    libcxx/test/libcxx/transitive_includes/cxx11/expected.iostream
    libcxx/test/libcxx/transitive_includes/cxx11/expected.istream
    libcxx/test/libcxx/transitive_includes/cxx11/expected.iterator
    libcxx/test/libcxx/transitive_includes/cxx11/expected.latch
    libcxx/test/libcxx/transitive_includes/cxx11/expected.limits
    libcxx/test/libcxx/transitive_includes/cxx11/expected.list
    libcxx/test/libcxx/transitive_includes/cxx11/expected.locale
    libcxx/test/libcxx/transitive_includes/cxx11/expected.map
    libcxx/test/libcxx/transitive_includes/cxx11/expected.memory
    libcxx/test/libcxx/transitive_includes/cxx11/expected.mutex
    libcxx/test/libcxx/transitive_includes/cxx11/expected.new
    libcxx/test/libcxx/transitive_includes/cxx11/expected.numbers
    libcxx/test/libcxx/transitive_includes/cxx11/expected.numeric
    libcxx/test/libcxx/transitive_includes/cxx11/expected.optional
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ostream
    libcxx/test/libcxx/transitive_includes/cxx11/expected.queue
    libcxx/test/libcxx/transitive_includes/cxx11/expected.random
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ranges
    libcxx/test/libcxx/transitive_includes/cxx11/expected.ratio
    libcxx/test/libcxx/transitive_includes/cxx11/expected.regex
    libcxx/test/libcxx/transitive_includes/cxx11/expected.scoped_allocator
    libcxx/test/libcxx/transitive_includes/cxx11/expected.semaphore
    libcxx/test/libcxx/transitive_includes/cxx11/expected.set
    libcxx/test/libcxx/transitive_includes/cxx11/expected.shared_mutex
    libcxx/test/libcxx/transitive_includes/cxx11/expected.span
    libcxx/test/libcxx/transitive_includes/cxx11/expected.sstream
    libcxx/test/libcxx/transitive_includes/cxx11/expected.stack
    libcxx/test/libcxx/transitive_includes/cxx11/expected.stdexcept
    libcxx/test/libcxx/transitive_includes/cxx11/expected.streambuf
    libcxx/test/libcxx/transitive_includes/cxx11/expected.string
    libcxx/test/libcxx/transitive_includes/cxx11/expected.string_view
    libcxx/test/libcxx/transitive_includes/cxx11/expected.strstream
    libcxx/test/libcxx/transitive_includes/cxx11/expected.system_error
    libcxx/test/libcxx/transitive_includes/cxx11/expected.thread
    libcxx/test/libcxx/transitive_includes/cxx11/expected.tuple
    libcxx/test/libcxx/transitive_includes/cxx11/expected.type_traits
    libcxx/test/libcxx/transitive_includes/cxx11/expected.typeindex
    libcxx/test/libcxx/transitive_includes/cxx11/expected.typeinfo
    libcxx/test/libcxx/transitive_includes/cxx11/expected.unordered_map
    libcxx/test/libcxx/transitive_includes/cxx11/expected.unordered_set
    libcxx/test/libcxx/transitive_includes/cxx11/expected.utility
    libcxx/test/libcxx/transitive_includes/cxx11/expected.valarray
    libcxx/test/libcxx/transitive_includes/cxx11/expected.variant
    libcxx/test/libcxx/transitive_includes/cxx11/expected.vector
    libcxx/test/libcxx/transitive_includes/cxx11/expected.version
    libcxx/test/libcxx/transitive_includes/cxx14/expected.algorithm
    libcxx/test/libcxx/transitive_includes/cxx14/expected.any
    libcxx/test/libcxx/transitive_includes/cxx14/expected.array
    libcxx/test/libcxx/transitive_includes/cxx14/expected.atomic
    libcxx/test/libcxx/transitive_includes/cxx14/expected.barrier
    libcxx/test/libcxx/transitive_includes/cxx14/expected.bit
    libcxx/test/libcxx/transitive_includes/cxx14/expected.bitset
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cassert
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ccomplex
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cctype
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cerrno
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cfenv
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cfloat
    libcxx/test/libcxx/transitive_includes/cxx14/expected.charconv
    libcxx/test/libcxx/transitive_includes/cxx14/expected.chrono
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cinttypes
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ciso646
    libcxx/test/libcxx/transitive_includes/cxx14/expected.climits
    libcxx/test/libcxx/transitive_includes/cxx14/expected.clocale
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cmath
    libcxx/test/libcxx/transitive_includes/cxx14/expected.codecvt
    libcxx/test/libcxx/transitive_includes/cxx14/expected.compare
    libcxx/test/libcxx/transitive_includes/cxx14/expected.complex
    libcxx/test/libcxx/transitive_includes/cxx14/expected.concepts
    libcxx/test/libcxx/transitive_includes/cxx14/expected.condition_variable
    libcxx/test/libcxx/transitive_includes/cxx14/expected.coroutine
    libcxx/test/libcxx/transitive_includes/cxx14/expected.csetjmp
    libcxx/test/libcxx/transitive_includes/cxx14/expected.csignal
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdarg
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdbool
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cstddef
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdint
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdio
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdlib
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cstring
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ctgmath
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ctime
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cuchar
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cwchar
    libcxx/test/libcxx/transitive_includes/cxx14/expected.cwctype
    libcxx/test/libcxx/transitive_includes/cxx14/expected.deque
    libcxx/test/libcxx/transitive_includes/cxx14/expected.exception
    libcxx/test/libcxx/transitive_includes/cxx14/expected.execution
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_algorithm
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_coroutine
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_deque
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_forward_list
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_functional
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_iterator
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_list
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_map
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_memory_resource
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_propagate_const
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_regex
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_set
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_simd
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_string
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_type_traits
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_unordered_map
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_unordered_set
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_utility
    libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_vector
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_map
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_set
    libcxx/test/libcxx/transitive_includes/cxx14/expected.filesystem
    libcxx/test/libcxx/transitive_includes/cxx14/expected.format
    libcxx/test/libcxx/transitive_includes/cxx14/expected.forward_list
    libcxx/test/libcxx/transitive_includes/cxx14/expected.fstream
    libcxx/test/libcxx/transitive_includes/cxx14/expected.functional
    libcxx/test/libcxx/transitive_includes/cxx14/expected.future
    libcxx/test/libcxx/transitive_includes/cxx14/expected.initializer_list
    libcxx/test/libcxx/transitive_includes/cxx14/expected.iomanip
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ios
    libcxx/test/libcxx/transitive_includes/cxx14/expected.iosfwd
    libcxx/test/libcxx/transitive_includes/cxx14/expected.iostream
    libcxx/test/libcxx/transitive_includes/cxx14/expected.istream
    libcxx/test/libcxx/transitive_includes/cxx14/expected.iterator
    libcxx/test/libcxx/transitive_includes/cxx14/expected.latch
    libcxx/test/libcxx/transitive_includes/cxx14/expected.limits
    libcxx/test/libcxx/transitive_includes/cxx14/expected.list
    libcxx/test/libcxx/transitive_includes/cxx14/expected.locale
    libcxx/test/libcxx/transitive_includes/cxx14/expected.map
    libcxx/test/libcxx/transitive_includes/cxx14/expected.memory
    libcxx/test/libcxx/transitive_includes/cxx14/expected.mutex
    libcxx/test/libcxx/transitive_includes/cxx14/expected.new
    libcxx/test/libcxx/transitive_includes/cxx14/expected.numbers
    libcxx/test/libcxx/transitive_includes/cxx14/expected.numeric
    libcxx/test/libcxx/transitive_includes/cxx14/expected.optional
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ostream
    libcxx/test/libcxx/transitive_includes/cxx14/expected.queue
    libcxx/test/libcxx/transitive_includes/cxx14/expected.random
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ranges
    libcxx/test/libcxx/transitive_includes/cxx14/expected.ratio
    libcxx/test/libcxx/transitive_includes/cxx14/expected.regex
    libcxx/test/libcxx/transitive_includes/cxx14/expected.scoped_allocator
    libcxx/test/libcxx/transitive_includes/cxx14/expected.semaphore
    libcxx/test/libcxx/transitive_includes/cxx14/expected.set
    libcxx/test/libcxx/transitive_includes/cxx14/expected.shared_mutex
    libcxx/test/libcxx/transitive_includes/cxx14/expected.span
    libcxx/test/libcxx/transitive_includes/cxx14/expected.sstream
    libcxx/test/libcxx/transitive_includes/cxx14/expected.stack
    libcxx/test/libcxx/transitive_includes/cxx14/expected.stdexcept
    libcxx/test/libcxx/transitive_includes/cxx14/expected.streambuf
    libcxx/test/libcxx/transitive_includes/cxx14/expected.string
    libcxx/test/libcxx/transitive_includes/cxx14/expected.string_view
    libcxx/test/libcxx/transitive_includes/cxx14/expected.strstream
    libcxx/test/libcxx/transitive_includes/cxx14/expected.system_error
    libcxx/test/libcxx/transitive_includes/cxx14/expected.thread
    libcxx/test/libcxx/transitive_includes/cxx14/expected.tuple
    libcxx/test/libcxx/transitive_includes/cxx14/expected.type_traits
    libcxx/test/libcxx/transitive_includes/cxx14/expected.typeindex
    libcxx/test/libcxx/transitive_includes/cxx14/expected.typeinfo
    libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_map
    libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_set
    libcxx/test/libcxx/transitive_includes/cxx14/expected.utility
    libcxx/test/libcxx/transitive_includes/cxx14/expected.valarray
    libcxx/test/libcxx/transitive_includes/cxx14/expected.variant
    libcxx/test/libcxx/transitive_includes/cxx14/expected.vector
    libcxx/test/libcxx/transitive_includes/cxx14/expected.version
    libcxx/test/libcxx/transitive_includes/cxx17/expected.algorithm
    libcxx/test/libcxx/transitive_includes/cxx17/expected.any
    libcxx/test/libcxx/transitive_includes/cxx17/expected.array
    libcxx/test/libcxx/transitive_includes/cxx17/expected.atomic
    libcxx/test/libcxx/transitive_includes/cxx17/expected.barrier
    libcxx/test/libcxx/transitive_includes/cxx17/expected.bit
    libcxx/test/libcxx/transitive_includes/cxx17/expected.bitset
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cassert
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ccomplex
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cctype
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cerrno
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cfenv
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cfloat
    libcxx/test/libcxx/transitive_includes/cxx17/expected.charconv
    libcxx/test/libcxx/transitive_includes/cxx17/expected.chrono
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cinttypes
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ciso646
    libcxx/test/libcxx/transitive_includes/cxx17/expected.climits
    libcxx/test/libcxx/transitive_includes/cxx17/expected.clocale
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cmath
    libcxx/test/libcxx/transitive_includes/cxx17/expected.codecvt
    libcxx/test/libcxx/transitive_includes/cxx17/expected.compare
    libcxx/test/libcxx/transitive_includes/cxx17/expected.complex
    libcxx/test/libcxx/transitive_includes/cxx17/expected.concepts
    libcxx/test/libcxx/transitive_includes/cxx17/expected.condition_variable
    libcxx/test/libcxx/transitive_includes/cxx17/expected.coroutine
    libcxx/test/libcxx/transitive_includes/cxx17/expected.csetjmp
    libcxx/test/libcxx/transitive_includes/cxx17/expected.csignal
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdarg
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdbool
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cstddef
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdint
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdio
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdlib
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cstring
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ctgmath
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ctime
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cuchar
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cwchar
    libcxx/test/libcxx/transitive_includes/cxx17/expected.cwctype
    libcxx/test/libcxx/transitive_includes/cxx17/expected.deque
    libcxx/test/libcxx/transitive_includes/cxx17/expected.exception
    libcxx/test/libcxx/transitive_includes/cxx17/expected.execution
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_algorithm
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_coroutine
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_deque
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_forward_list
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_functional
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_iterator
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_list
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_map
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_memory_resource
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_propagate_const
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_regex
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_set
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_simd
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_string
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_type_traits
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_unordered_map
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_unordered_set
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_utility
    libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_vector
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_map
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_set
    libcxx/test/libcxx/transitive_includes/cxx17/expected.filesystem
    libcxx/test/libcxx/transitive_includes/cxx17/expected.format
    libcxx/test/libcxx/transitive_includes/cxx17/expected.forward_list
    libcxx/test/libcxx/transitive_includes/cxx17/expected.fstream
    libcxx/test/libcxx/transitive_includes/cxx17/expected.functional
    libcxx/test/libcxx/transitive_includes/cxx17/expected.future
    libcxx/test/libcxx/transitive_includes/cxx17/expected.initializer_list
    libcxx/test/libcxx/transitive_includes/cxx17/expected.iomanip
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ios
    libcxx/test/libcxx/transitive_includes/cxx17/expected.iosfwd
    libcxx/test/libcxx/transitive_includes/cxx17/expected.iostream
    libcxx/test/libcxx/transitive_includes/cxx17/expected.istream
    libcxx/test/libcxx/transitive_includes/cxx17/expected.iterator
    libcxx/test/libcxx/transitive_includes/cxx17/expected.latch
    libcxx/test/libcxx/transitive_includes/cxx17/expected.limits
    libcxx/test/libcxx/transitive_includes/cxx17/expected.list
    libcxx/test/libcxx/transitive_includes/cxx17/expected.locale
    libcxx/test/libcxx/transitive_includes/cxx17/expected.map
    libcxx/test/libcxx/transitive_includes/cxx17/expected.memory
    libcxx/test/libcxx/transitive_includes/cxx17/expected.mutex
    libcxx/test/libcxx/transitive_includes/cxx17/expected.new
    libcxx/test/libcxx/transitive_includes/cxx17/expected.numbers
    libcxx/test/libcxx/transitive_includes/cxx17/expected.numeric
    libcxx/test/libcxx/transitive_includes/cxx17/expected.optional
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ostream
    libcxx/test/libcxx/transitive_includes/cxx17/expected.queue
    libcxx/test/libcxx/transitive_includes/cxx17/expected.random
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ranges
    libcxx/test/libcxx/transitive_includes/cxx17/expected.ratio
    libcxx/test/libcxx/transitive_includes/cxx17/expected.regex
    libcxx/test/libcxx/transitive_includes/cxx17/expected.scoped_allocator
    libcxx/test/libcxx/transitive_includes/cxx17/expected.semaphore
    libcxx/test/libcxx/transitive_includes/cxx17/expected.set
    libcxx/test/libcxx/transitive_includes/cxx17/expected.shared_mutex
    libcxx/test/libcxx/transitive_includes/cxx17/expected.span
    libcxx/test/libcxx/transitive_includes/cxx17/expected.sstream
    libcxx/test/libcxx/transitive_includes/cxx17/expected.stack
    libcxx/test/libcxx/transitive_includes/cxx17/expected.stdexcept
    libcxx/test/libcxx/transitive_includes/cxx17/expected.streambuf
    libcxx/test/libcxx/transitive_includes/cxx17/expected.string
    libcxx/test/libcxx/transitive_includes/cxx17/expected.string_view
    libcxx/test/libcxx/transitive_includes/cxx17/expected.strstream
    libcxx/test/libcxx/transitive_includes/cxx17/expected.system_error
    libcxx/test/libcxx/transitive_includes/cxx17/expected.thread
    libcxx/test/libcxx/transitive_includes/cxx17/expected.tuple
    libcxx/test/libcxx/transitive_includes/cxx17/expected.type_traits
    libcxx/test/libcxx/transitive_includes/cxx17/expected.typeindex
    libcxx/test/libcxx/transitive_includes/cxx17/expected.typeinfo
    libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_map
    libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_set
    libcxx/test/libcxx/transitive_includes/cxx17/expected.utility
    libcxx/test/libcxx/transitive_includes/cxx17/expected.valarray
    libcxx/test/libcxx/transitive_includes/cxx17/expected.variant
    libcxx/test/libcxx/transitive_includes/cxx17/expected.vector
    libcxx/test/libcxx/transitive_includes/cxx17/expected.version
    libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm
    libcxx/test/libcxx/transitive_includes/cxx20/expected.any
    libcxx/test/libcxx/transitive_includes/cxx20/expected.array
    libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic
    libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier
    libcxx/test/libcxx/transitive_includes/cxx20/expected.bit
    libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cassert
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cctype
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cerrno
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cfenv
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cfloat
    libcxx/test/libcxx/transitive_includes/cxx20/expected.charconv
    libcxx/test/libcxx/transitive_includes/cxx20/expected.chrono
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cinttypes
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ciso646
    libcxx/test/libcxx/transitive_includes/cxx20/expected.climits
    libcxx/test/libcxx/transitive_includes/cxx20/expected.clocale
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cmath
    libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt
    libcxx/test/libcxx/transitive_includes/cxx20/expected.compare
    libcxx/test/libcxx/transitive_includes/cxx20/expected.complex
    libcxx/test/libcxx/transitive_includes/cxx20/expected.concepts
    libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable
    libcxx/test/libcxx/transitive_includes/cxx20/expected.coroutine
    libcxx/test/libcxx/transitive_includes/cxx20/expected.csetjmp
    libcxx/test/libcxx/transitive_includes/cxx20/expected.csignal
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdarg
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdbool
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cstddef
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdint
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdio
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdlib
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cstring
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ctime
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cuchar
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cwchar
    libcxx/test/libcxx/transitive_includes/cxx20/expected.cwctype
    libcxx/test/libcxx/transitive_includes/cxx20/expected.deque
    libcxx/test/libcxx/transitive_includes/cxx20/expected.exception
    libcxx/test/libcxx/transitive_includes/cxx20/expected.execution
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_iterator
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_propagate_const
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_type_traits
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_utility
    libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set
    libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem
    libcxx/test/libcxx/transitive_includes/cxx20/expected.format
    libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list
    libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream
    libcxx/test/libcxx/transitive_includes/cxx20/expected.functional
    libcxx/test/libcxx/transitive_includes/cxx20/expected.future
    libcxx/test/libcxx/transitive_includes/cxx20/expected.initializer_list
    libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ios
    libcxx/test/libcxx/transitive_includes/cxx20/expected.iosfwd
    libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream
    libcxx/test/libcxx/transitive_includes/cxx20/expected.istream
    libcxx/test/libcxx/transitive_includes/cxx20/expected.iterator
    libcxx/test/libcxx/transitive_includes/cxx20/expected.latch
    libcxx/test/libcxx/transitive_includes/cxx20/expected.limits
    libcxx/test/libcxx/transitive_includes/cxx20/expected.list
    libcxx/test/libcxx/transitive_includes/cxx20/expected.locale
    libcxx/test/libcxx/transitive_includes/cxx20/expected.map
    libcxx/test/libcxx/transitive_includes/cxx20/expected.memory
    libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex
    libcxx/test/libcxx/transitive_includes/cxx20/expected.new
    libcxx/test/libcxx/transitive_includes/cxx20/expected.numbers
    libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric
    libcxx/test/libcxx/transitive_includes/cxx20/expected.optional
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream
    libcxx/test/libcxx/transitive_includes/cxx20/expected.queue
    libcxx/test/libcxx/transitive_includes/cxx20/expected.random
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges
    libcxx/test/libcxx/transitive_includes/cxx20/expected.ratio
    libcxx/test/libcxx/transitive_includes/cxx20/expected.regex
    libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator
    libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore
    libcxx/test/libcxx/transitive_includes/cxx20/expected.set
    libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex
    libcxx/test/libcxx/transitive_includes/cxx20/expected.span
    libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream
    libcxx/test/libcxx/transitive_includes/cxx20/expected.stack
    libcxx/test/libcxx/transitive_includes/cxx20/expected.stdexcept
    libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf
    libcxx/test/libcxx/transitive_includes/cxx20/expected.string
    libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view
    libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream
    libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error
    libcxx/test/libcxx/transitive_includes/cxx20/expected.thread
    libcxx/test/libcxx/transitive_includes/cxx20/expected.tuple
    libcxx/test/libcxx/transitive_includes/cxx20/expected.type_traits
    libcxx/test/libcxx/transitive_includes/cxx20/expected.typeindex
    libcxx/test/libcxx/transitive_includes/cxx20/expected.typeinfo
    libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map
    libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set
    libcxx/test/libcxx/transitive_includes/cxx20/expected.utility
    libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray
    libcxx/test/libcxx/transitive_includes/cxx20/expected.variant
    libcxx/test/libcxx/transitive_includes/cxx20/expected.vector
    libcxx/test/libcxx/transitive_includes/cxx20/expected.version
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.array
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cassert
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cctype
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cerrno
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfenv
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfloat
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.chrono
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cinttypes
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ciso646
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.climits
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.clocale
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cmath
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.compare
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.concepts
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.csetjmp
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.csignal
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdarg
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdbool
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstddef
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdint
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdio
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdlib
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstring
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctime
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cuchar
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwchar
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwctype
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.exception
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.execution
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_propagate_const
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_type_traits
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.format
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.future
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.initializer_list
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.iosfwd
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.limits
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.map
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.new
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.numbers
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.ratio
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.span
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.stdexcept
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.type_traits
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeinfo
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
    libcxx/test/libcxx/transitive_includes/cxx2b/expected.version

Modified: 
    libcxx/test/libcxx/transitive_includes.sh.cpp
    libcxx/utils/libcxx/test/params.py

Removed: 
    libcxx/test/libcxx/transitive_includes/expected.algorithm
    libcxx/test/libcxx/transitive_includes/expected.any
    libcxx/test/libcxx/transitive_includes/expected.array
    libcxx/test/libcxx/transitive_includes/expected.atomic
    libcxx/test/libcxx/transitive_includes/expected.barrier
    libcxx/test/libcxx/transitive_includes/expected.bit
    libcxx/test/libcxx/transitive_includes/expected.bitset
    libcxx/test/libcxx/transitive_includes/expected.cassert
    libcxx/test/libcxx/transitive_includes/expected.ccomplex
    libcxx/test/libcxx/transitive_includes/expected.cctype
    libcxx/test/libcxx/transitive_includes/expected.cerrno
    libcxx/test/libcxx/transitive_includes/expected.cfenv
    libcxx/test/libcxx/transitive_includes/expected.cfloat
    libcxx/test/libcxx/transitive_includes/expected.charconv
    libcxx/test/libcxx/transitive_includes/expected.chrono
    libcxx/test/libcxx/transitive_includes/expected.cinttypes
    libcxx/test/libcxx/transitive_includes/expected.ciso646
    libcxx/test/libcxx/transitive_includes/expected.climits
    libcxx/test/libcxx/transitive_includes/expected.clocale
    libcxx/test/libcxx/transitive_includes/expected.cmath
    libcxx/test/libcxx/transitive_includes/expected.codecvt
    libcxx/test/libcxx/transitive_includes/expected.compare
    libcxx/test/libcxx/transitive_includes/expected.complex
    libcxx/test/libcxx/transitive_includes/expected.concepts
    libcxx/test/libcxx/transitive_includes/expected.condition_variable
    libcxx/test/libcxx/transitive_includes/expected.coroutine
    libcxx/test/libcxx/transitive_includes/expected.csetjmp
    libcxx/test/libcxx/transitive_includes/expected.csignal
    libcxx/test/libcxx/transitive_includes/expected.cstdarg
    libcxx/test/libcxx/transitive_includes/expected.cstdbool
    libcxx/test/libcxx/transitive_includes/expected.cstddef
    libcxx/test/libcxx/transitive_includes/expected.cstdint
    libcxx/test/libcxx/transitive_includes/expected.cstdio
    libcxx/test/libcxx/transitive_includes/expected.cstdlib
    libcxx/test/libcxx/transitive_includes/expected.cstring
    libcxx/test/libcxx/transitive_includes/expected.ctgmath
    libcxx/test/libcxx/transitive_includes/expected.ctime
    libcxx/test/libcxx/transitive_includes/expected.cuchar
    libcxx/test/libcxx/transitive_includes/expected.cwchar
    libcxx/test/libcxx/transitive_includes/expected.cwctype
    libcxx/test/libcxx/transitive_includes/expected.deque
    libcxx/test/libcxx/transitive_includes/expected.exception
    libcxx/test/libcxx/transitive_includes/expected.execution
    libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm
    libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine
    libcxx/test/libcxx/transitive_includes/expected.experimental_deque
    libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list
    libcxx/test/libcxx/transitive_includes/expected.experimental_functional
    libcxx/test/libcxx/transitive_includes/expected.experimental_iterator
    libcxx/test/libcxx/transitive_includes/expected.experimental_list
    libcxx/test/libcxx/transitive_includes/expected.experimental_map
    libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource
    libcxx/test/libcxx/transitive_includes/expected.experimental_propagate_const
    libcxx/test/libcxx/transitive_includes/expected.experimental_regex
    libcxx/test/libcxx/transitive_includes/expected.experimental_set
    libcxx/test/libcxx/transitive_includes/expected.experimental_simd
    libcxx/test/libcxx/transitive_includes/expected.experimental_string
    libcxx/test/libcxx/transitive_includes/expected.experimental_type_traits
    libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map
    libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set
    libcxx/test/libcxx/transitive_includes/expected.experimental_utility
    libcxx/test/libcxx/transitive_includes/expected.experimental_vector
    libcxx/test/libcxx/transitive_includes/expected.ext_hash_map
    libcxx/test/libcxx/transitive_includes/expected.ext_hash_set
    libcxx/test/libcxx/transitive_includes/expected.filesystem
    libcxx/test/libcxx/transitive_includes/expected.format
    libcxx/test/libcxx/transitive_includes/expected.forward_list
    libcxx/test/libcxx/transitive_includes/expected.fstream
    libcxx/test/libcxx/transitive_includes/expected.functional
    libcxx/test/libcxx/transitive_includes/expected.future
    libcxx/test/libcxx/transitive_includes/expected.initializer_list
    libcxx/test/libcxx/transitive_includes/expected.iomanip
    libcxx/test/libcxx/transitive_includes/expected.ios
    libcxx/test/libcxx/transitive_includes/expected.iosfwd
    libcxx/test/libcxx/transitive_includes/expected.iostream
    libcxx/test/libcxx/transitive_includes/expected.istream
    libcxx/test/libcxx/transitive_includes/expected.iterator
    libcxx/test/libcxx/transitive_includes/expected.latch
    libcxx/test/libcxx/transitive_includes/expected.limits
    libcxx/test/libcxx/transitive_includes/expected.list
    libcxx/test/libcxx/transitive_includes/expected.locale
    libcxx/test/libcxx/transitive_includes/expected.map
    libcxx/test/libcxx/transitive_includes/expected.memory
    libcxx/test/libcxx/transitive_includes/expected.mutex
    libcxx/test/libcxx/transitive_includes/expected.new
    libcxx/test/libcxx/transitive_includes/expected.numbers
    libcxx/test/libcxx/transitive_includes/expected.numeric
    libcxx/test/libcxx/transitive_includes/expected.optional
    libcxx/test/libcxx/transitive_includes/expected.ostream
    libcxx/test/libcxx/transitive_includes/expected.queue
    libcxx/test/libcxx/transitive_includes/expected.random
    libcxx/test/libcxx/transitive_includes/expected.ranges
    libcxx/test/libcxx/transitive_includes/expected.ratio
    libcxx/test/libcxx/transitive_includes/expected.regex
    libcxx/test/libcxx/transitive_includes/expected.scoped_allocator
    libcxx/test/libcxx/transitive_includes/expected.semaphore
    libcxx/test/libcxx/transitive_includes/expected.set
    libcxx/test/libcxx/transitive_includes/expected.shared_mutex
    libcxx/test/libcxx/transitive_includes/expected.span
    libcxx/test/libcxx/transitive_includes/expected.sstream
    libcxx/test/libcxx/transitive_includes/expected.stack
    libcxx/test/libcxx/transitive_includes/expected.stdexcept
    libcxx/test/libcxx/transitive_includes/expected.streambuf
    libcxx/test/libcxx/transitive_includes/expected.string
    libcxx/test/libcxx/transitive_includes/expected.string_view
    libcxx/test/libcxx/transitive_includes/expected.strstream
    libcxx/test/libcxx/transitive_includes/expected.system_error
    libcxx/test/libcxx/transitive_includes/expected.thread
    libcxx/test/libcxx/transitive_includes/expected.tuple
    libcxx/test/libcxx/transitive_includes/expected.type_traits
    libcxx/test/libcxx/transitive_includes/expected.typeindex
    libcxx/test/libcxx/transitive_includes/expected.typeinfo
    libcxx/test/libcxx/transitive_includes/expected.unordered_map
    libcxx/test/libcxx/transitive_includes/expected.unordered_set
    libcxx/test/libcxx/transitive_includes/expected.utility
    libcxx/test/libcxx/transitive_includes/expected.valarray
    libcxx/test/libcxx/transitive_includes/expected.variant
    libcxx/test/libcxx/transitive_includes/expected.vector
    libcxx/test/libcxx/transitive_includes/expected.version


################################################################################
diff  --git a/libcxx/test/libcxx/transitive_includes.sh.cpp b/libcxx/test/libcxx/transitive_includes.sh.cpp
index 0475bf11ef8b9..3b3302874711c 100644
--- a/libcxx/test/libcxx/transitive_includes.sh.cpp
+++ b/libcxx/test/libcxx/transitive_includes.sh.cpp
@@ -20,9 +20,8 @@
 // would need to add significant complexity to make that work.
 // UNSUPPORTED: no-localization, no-threads, no-wide-characters, no-filesystem, libcpp-has-no-incomplete-format
 
-// This test only supports being run with the latest Standard, otherwise we'd
-// have to support various versions of the test.
-// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
+// TODO(mordante) FIX C++ 03, the issue is the experimental library doesn't work with C++03 but isn't guarded.
+// UNSUPPORTED: c++03
 
 // When built with modules, this test doesn't work because --trace-includes doesn't
 // report the stack of includes correctly.
@@ -51,14 +50,16 @@ import re
 
 # To re-generate the list of expected headers, temporarily set this to True, re-generate
 # the file and run this test.
+# Note that this needs to be done for all supported language versions of libc++:
+# for std in c++03 c++11 c++14 c++17 c++20 c++2b; do <build>/bin/llvm-lit --param std=$std ${path_to_this_file}; done
 regenerate_expected_results = False
 
 # Used because the sequence of tokens RUN : can't appear anywhere or it'll confuse Lit.
 RUN = "RUN"
 
 if regenerate_expected_results:
-  print(f"// {RUN}: rm -rf %S/transitive_includes")
-  print(f"// {RUN}: mkdir %S/transitive_includes")
+  print(f"// {RUN}: rm -rf %S/transitive_includes/%{{cxx_std}}")
+  print(f"// {RUN}: mkdir %S/transitive_includes/%{{cxx_std}}")
 
 for i, header in enumerate(public_headers):
   if header.endswith('.h'): # Skip C compatibility headers
@@ -66,14 +67,15 @@ for i, header in enumerate(public_headers):
 
   normalized_header = re.sub('/', '_', header)
   trace_includes = "%{{cxx}} %s %{{flags}} %{{compile_flags}} --trace-includes -fsyntax-only -DTEST_{} 2>&1".format(i)
+
   if regenerate_expected_results:
-    print(f"// {RUN}: {trace_includes} | %{{python}} %S/transitive_includes.sanitize.py > %S/transitive_includes/expected.{normalized_header}")
+    print(f"// {RUN}: {trace_includes} | %{{python}} %S/transitive_includes.sanitize.py > %S/transitive_includes/%{{cxx_std}}/expected.{normalized_header}")
   else:
     print(f"// {RUN}: {trace_includes} | %{{python}} %S/transitive_includes.sanitize.py > %t.actual.{normalized_header}")
-    print(f"// {RUN}: 
diff  -w %S/transitive_includes/expected.{normalized_header} %t.actual.{normalized_header}")
+    print(f"// {RUN}: 
diff  -w %S/transitive_includes/%{{cxx_std}}/expected.{normalized_header} %t.actual.{normalized_header}")
 
-  print("#if defined(TEST_{})".format(i))
-  print("#include <{}>".format(header))
+  print(f"#if defined(TEST_{i})")
+  print(f"#include <{header}>")
   print("#endif")
 
 END-SCRIPT
@@ -82,597 +84,597 @@ END-SCRIPT
 // 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  -w %S/transitive_includes/expected.algorithm %t.actual.algorithm
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.algorithm %t.actual.algorithm
 #if defined(TEST_0)
 #include <algorithm>
 #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  -w %S/transitive_includes/expected.any %t.actual.any
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.any %t.actual.any
 #if defined(TEST_1)
 #include <any>
 #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  -w %S/transitive_includes/expected.array %t.actual.array
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.array %t.actual.array
 #if defined(TEST_2)
 #include <array>
 #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  -w %S/transitive_includes/expected.atomic %t.actual.atomic
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.atomic %t.actual.atomic
 #if defined(TEST_3)
 #include <atomic>
 #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  -w %S/transitive_includes/expected.barrier %t.actual.barrier
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.barrier %t.actual.barrier
 #if defined(TEST_4)
 #include <barrier>
 #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  -w %S/transitive_includes/expected.bit %t.actual.bit
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.bit %t.actual.bit
 #if defined(TEST_5)
 #include <bit>
 #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  -w %S/transitive_includes/expected.bitset %t.actual.bitset
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.bitset %t.actual.bitset
 #if defined(TEST_6)
 #include <bitset>
 #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  -w %S/transitive_includes/expected.cassert %t.actual.cassert
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cassert %t.actual.cassert
 #if defined(TEST_7)
 #include <cassert>
 #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  -w %S/transitive_includes/expected.ccomplex %t.actual.ccomplex
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ccomplex %t.actual.ccomplex
 #if defined(TEST_8)
 #include <ccomplex>
 #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  -w %S/transitive_includes/expected.cctype %t.actual.cctype
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cctype %t.actual.cctype
 #if defined(TEST_9)
 #include <cctype>
 #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  -w %S/transitive_includes/expected.cerrno %t.actual.cerrno
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cerrno %t.actual.cerrno
 #if defined(TEST_10)
 #include <cerrno>
 #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  -w %S/transitive_includes/expected.cfenv %t.actual.cfenv
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cfenv %t.actual.cfenv
 #if defined(TEST_11)
 #include <cfenv>
 #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  -w %S/transitive_includes/expected.cfloat %t.actual.cfloat
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cfloat %t.actual.cfloat
 #if defined(TEST_12)
 #include <cfloat>
 #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  -w %S/transitive_includes/expected.charconv %t.actual.charconv
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.charconv %t.actual.charconv
 #if defined(TEST_13)
 #include <charconv>
 #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  -w %S/transitive_includes/expected.chrono %t.actual.chrono
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.chrono %t.actual.chrono
 #if defined(TEST_14)
 #include <chrono>
 #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  -w %S/transitive_includes/expected.cinttypes %t.actual.cinttypes
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cinttypes %t.actual.cinttypes
 #if defined(TEST_15)
 #include <cinttypes>
 #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  -w %S/transitive_includes/expected.ciso646 %t.actual.ciso646
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ciso646 %t.actual.ciso646
 #if defined(TEST_16)
 #include <ciso646>
 #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  -w %S/transitive_includes/expected.climits %t.actual.climits
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.climits %t.actual.climits
 #if defined(TEST_17)
 #include <climits>
 #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  -w %S/transitive_includes/expected.clocale %t.actual.clocale
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.clocale %t.actual.clocale
 #if defined(TEST_18)
 #include <clocale>
 #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  -w %S/transitive_includes/expected.cmath %t.actual.cmath
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cmath %t.actual.cmath
 #if defined(TEST_19)
 #include <cmath>
 #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  -w %S/transitive_includes/expected.codecvt %t.actual.codecvt
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.codecvt %t.actual.codecvt
 #if defined(TEST_20)
 #include <codecvt>
 #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  -w %S/transitive_includes/expected.compare %t.actual.compare
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.compare %t.actual.compare
 #if defined(TEST_21)
 #include <compare>
 #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  -w %S/transitive_includes/expected.complex %t.actual.complex
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.complex %t.actual.complex
 #if defined(TEST_22)
 #include <complex>
 #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  -w %S/transitive_includes/expected.concepts %t.actual.concepts
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.concepts %t.actual.concepts
 #if defined(TEST_24)
 #include <concepts>
 #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  -w %S/transitive_includes/expected.condition_variable %t.actual.condition_variable
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.condition_variable %t.actual.condition_variable
 #if defined(TEST_25)
 #include <condition_variable>
 #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  -w %S/transitive_includes/expected.coroutine %t.actual.coroutine
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.coroutine %t.actual.coroutine
 #if defined(TEST_26)
 #include <coroutine>
 #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  -w %S/transitive_includes/expected.csetjmp %t.actual.csetjmp
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.csetjmp %t.actual.csetjmp
 #if defined(TEST_27)
 #include <csetjmp>
 #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  -w %S/transitive_includes/expected.csignal %t.actual.csignal
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.csignal %t.actual.csignal
 #if defined(TEST_28)
 #include <csignal>
 #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  -w %S/transitive_includes/expected.cstdarg %t.actual.cstdarg
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cstdarg %t.actual.cstdarg
 #if defined(TEST_29)
 #include <cstdarg>
 #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  -w %S/transitive_includes/expected.cstdbool %t.actual.cstdbool
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cstdbool %t.actual.cstdbool
 #if defined(TEST_30)
 #include <cstdbool>
 #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  -w %S/transitive_includes/expected.cstddef %t.actual.cstddef
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cstddef %t.actual.cstddef
 #if defined(TEST_31)
 #include <cstddef>
 #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  -w %S/transitive_includes/expected.cstdint %t.actual.cstdint
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cstdint %t.actual.cstdint
 #if defined(TEST_32)
 #include <cstdint>
 #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  -w %S/transitive_includes/expected.cstdio %t.actual.cstdio
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cstdio %t.actual.cstdio
 #if defined(TEST_33)
 #include <cstdio>
 #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  -w %S/transitive_includes/expected.cstdlib %t.actual.cstdlib
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cstdlib %t.actual.cstdlib
 #if defined(TEST_34)
 #include <cstdlib>
 #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  -w %S/transitive_includes/expected.cstring %t.actual.cstring
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cstring %t.actual.cstring
 #if defined(TEST_35)
 #include <cstring>
 #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  -w %S/transitive_includes/expected.ctgmath %t.actual.ctgmath
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ctgmath %t.actual.ctgmath
 #if defined(TEST_36)
 #include <ctgmath>
 #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  -w %S/transitive_includes/expected.ctime %t.actual.ctime
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ctime %t.actual.ctime
 #if defined(TEST_37)
 #include <ctime>
 #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  -w %S/transitive_includes/expected.cuchar %t.actual.cuchar
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cuchar %t.actual.cuchar
 #if defined(TEST_39)
 #include <cuchar>
 #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  -w %S/transitive_includes/expected.cwchar %t.actual.cwchar
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cwchar %t.actual.cwchar
 #if defined(TEST_40)
 #include <cwchar>
 #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  -w %S/transitive_includes/expected.cwctype %t.actual.cwctype
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.cwctype %t.actual.cwctype
 #if defined(TEST_41)
 #include <cwctype>
 #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  -w %S/transitive_includes/expected.deque %t.actual.deque
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.deque %t.actual.deque
 #if defined(TEST_42)
 #include <deque>
 #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  -w %S/transitive_includes/expected.exception %t.actual.exception
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.exception %t.actual.exception
 #if defined(TEST_44)
 #include <exception>
 #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  -w %S/transitive_includes/expected.execution %t.actual.execution
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.execution %t.actual.execution
 #if defined(TEST_45)
 #include <execution>
 #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  -w %S/transitive_includes/expected.filesystem %t.actual.filesystem
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.filesystem %t.actual.filesystem
 #if defined(TEST_47)
 #include <filesystem>
 #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  -w %S/transitive_includes/expected.format %t.actual.format
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.format %t.actual.format
 #if defined(TEST_49)
 #include <format>
 #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  -w %S/transitive_includes/expected.forward_list %t.actual.forward_list
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.forward_list %t.actual.forward_list
 #if defined(TEST_50)
 #include <forward_list>
 #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  -w %S/transitive_includes/expected.fstream %t.actual.fstream
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.fstream %t.actual.fstream
 #if defined(TEST_51)
 #include <fstream>
 #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  -w %S/transitive_includes/expected.functional %t.actual.functional
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.functional %t.actual.functional
 #if defined(TEST_52)
 #include <functional>
 #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  -w %S/transitive_includes/expected.future %t.actual.future
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.future %t.actual.future
 #if defined(TEST_53)
 #include <future>
 #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  -w %S/transitive_includes/expected.initializer_list %t.actual.initializer_list
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.initializer_list %t.actual.initializer_list
 #if defined(TEST_54)
 #include <initializer_list>
 #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  -w %S/transitive_includes/expected.iomanip %t.actual.iomanip
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.iomanip %t.actual.iomanip
 #if defined(TEST_56)
 #include <iomanip>
 #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  -w %S/transitive_includes/expected.ios %t.actual.ios
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ios %t.actual.ios
 #if defined(TEST_57)
 #include <ios>
 #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  -w %S/transitive_includes/expected.iosfwd %t.actual.iosfwd
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.iosfwd %t.actual.iosfwd
 #if defined(TEST_58)
 #include <iosfwd>
 #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  -w %S/transitive_includes/expected.iostream %t.actual.iostream
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.iostream %t.actual.iostream
 #if defined(TEST_59)
 #include <iostream>
 #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  -w %S/transitive_includes/expected.istream %t.actual.istream
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.istream %t.actual.istream
 #if defined(TEST_60)
 #include <istream>
 #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  -w %S/transitive_includes/expected.iterator %t.actual.iterator
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.iterator %t.actual.iterator
 #if defined(TEST_61)
 #include <iterator>
 #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  -w %S/transitive_includes/expected.latch %t.actual.latch
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.latch %t.actual.latch
 #if defined(TEST_62)
 #include <latch>
 #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  -w %S/transitive_includes/expected.limits %t.actual.limits
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.limits %t.actual.limits
 #if defined(TEST_63)
 #include <limits>
 #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  -w %S/transitive_includes/expected.list %t.actual.list
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.list %t.actual.list
 #if defined(TEST_65)
 #include <list>
 #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  -w %S/transitive_includes/expected.locale %t.actual.locale
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.locale %t.actual.locale
 #if defined(TEST_66)
 #include <locale>
 #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  -w %S/transitive_includes/expected.map %t.actual.map
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.map %t.actual.map
 #if defined(TEST_68)
 #include <map>
 #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  -w %S/transitive_includes/expected.memory %t.actual.memory
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.memory %t.actual.memory
 #if defined(TEST_70)
 #include <memory>
 #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  -w %S/transitive_includes/expected.mutex %t.actual.mutex
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.mutex %t.actual.mutex
 #if defined(TEST_71)
 #include <mutex>
 #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  -w %S/transitive_includes/expected.new %t.actual.new
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.new %t.actual.new
 #if defined(TEST_72)
 #include <new>
 #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  -w %S/transitive_includes/expected.numbers %t.actual.numbers
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.numbers %t.actual.numbers
 #if defined(TEST_73)
 #include <numbers>
 #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  -w %S/transitive_includes/expected.numeric %t.actual.numeric
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.numeric %t.actual.numeric
 #if defined(TEST_74)
 #include <numeric>
 #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  -w %S/transitive_includes/expected.optional %t.actual.optional
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.optional %t.actual.optional
 #if defined(TEST_75)
 #include <optional>
 #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  -w %S/transitive_includes/expected.ostream %t.actual.ostream
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ostream %t.actual.ostream
 #if defined(TEST_76)
 #include <ostream>
 #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  -w %S/transitive_includes/expected.queue %t.actual.queue
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.queue %t.actual.queue
 #if defined(TEST_77)
 #include <queue>
 #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  -w %S/transitive_includes/expected.random %t.actual.random
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.random %t.actual.random
 #if defined(TEST_78)
 #include <random>
 #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  -w %S/transitive_includes/expected.ranges %t.actual.ranges
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ranges %t.actual.ranges
 #if defined(TEST_79)
 #include <ranges>
 #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  -w %S/transitive_includes/expected.ratio %t.actual.ratio
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ratio %t.actual.ratio
 #if defined(TEST_80)
 #include <ratio>
 #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  -w %S/transitive_includes/expected.regex %t.actual.regex
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.regex %t.actual.regex
 #if defined(TEST_81)
 #include <regex>
 #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  -w %S/transitive_includes/expected.scoped_allocator %t.actual.scoped_allocator
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.scoped_allocator %t.actual.scoped_allocator
 #if defined(TEST_82)
 #include <scoped_allocator>
 #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  -w %S/transitive_includes/expected.semaphore %t.actual.semaphore
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.semaphore %t.actual.semaphore
 #if defined(TEST_83)
 #include <semaphore>
 #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  -w %S/transitive_includes/expected.set %t.actual.set
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.set %t.actual.set
 #if defined(TEST_84)
 #include <set>
 #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  -w %S/transitive_includes/expected.shared_mutex %t.actual.shared_mutex
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.shared_mutex %t.actual.shared_mutex
 #if defined(TEST_86)
 #include <shared_mutex>
 #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  -w %S/transitive_includes/expected.span %t.actual.span
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.span %t.actual.span
 #if defined(TEST_87)
 #include <span>
 #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  -w %S/transitive_includes/expected.sstream %t.actual.sstream
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.sstream %t.actual.sstream
 #if defined(TEST_88)
 #include <sstream>
 #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  -w %S/transitive_includes/expected.stack %t.actual.stack
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.stack %t.actual.stack
 #if defined(TEST_89)
 #include <stack>
 #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  -w %S/transitive_includes/expected.stdexcept %t.actual.stdexcept
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.stdexcept %t.actual.stdexcept
 #if defined(TEST_93)
 #include <stdexcept>
 #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  -w %S/transitive_includes/expected.streambuf %t.actual.streambuf
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.streambuf %t.actual.streambuf
 #if defined(TEST_97)
 #include <streambuf>
 #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  -w %S/transitive_includes/expected.string %t.actual.string
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.string %t.actual.string
 #if defined(TEST_98)
 #include <string>
 #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  -w %S/transitive_includes/expected.string_view %t.actual.string_view
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.string_view %t.actual.string_view
 #if defined(TEST_100)
 #include <string_view>
 #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  -w %S/transitive_includes/expected.strstream %t.actual.strstream
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.strstream %t.actual.strstream
 #if defined(TEST_101)
 #include <strstream>
 #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  -w %S/transitive_includes/expected.system_error %t.actual.system_error
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.system_error %t.actual.system_error
 #if defined(TEST_102)
 #include <system_error>
 #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  -w %S/transitive_includes/expected.thread %t.actual.thread
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.thread %t.actual.thread
 #if defined(TEST_104)
 #include <thread>
 #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  -w %S/transitive_includes/expected.tuple %t.actual.tuple
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.tuple %t.actual.tuple
 #if defined(TEST_105)
 #include <tuple>
 #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  -w %S/transitive_includes/expected.type_traits %t.actual.type_traits
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.type_traits %t.actual.type_traits
 #if defined(TEST_106)
 #include <type_traits>
 #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  -w %S/transitive_includes/expected.typeindex %t.actual.typeindex
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.typeindex %t.actual.typeindex
 #if defined(TEST_107)
 #include <typeindex>
 #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  -w %S/transitive_includes/expected.typeinfo %t.actual.typeinfo
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.typeinfo %t.actual.typeinfo
 #if defined(TEST_108)
 #include <typeinfo>
 #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  -w %S/transitive_includes/expected.unordered_map %t.actual.unordered_map
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.unordered_map %t.actual.unordered_map
 #if defined(TEST_110)
 #include <unordered_map>
 #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  -w %S/transitive_includes/expected.unordered_set %t.actual.unordered_set
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.unordered_set %t.actual.unordered_set
 #if defined(TEST_111)
 #include <unordered_set>
 #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  -w %S/transitive_includes/expected.utility %t.actual.utility
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.utility %t.actual.utility
 #if defined(TEST_112)
 #include <utility>
 #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  -w %S/transitive_includes/expected.valarray %t.actual.valarray
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.valarray %t.actual.valarray
 #if defined(TEST_113)
 #include <valarray>
 #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  -w %S/transitive_includes/expected.variant %t.actual.variant
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.variant %t.actual.variant
 #if defined(TEST_114)
 #include <variant>
 #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  -w %S/transitive_includes/expected.vector %t.actual.vector
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.vector %t.actual.vector
 #if defined(TEST_115)
 #include <vector>
 #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  -w %S/transitive_includes/expected.version %t.actual.version
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.version %t.actual.version
 #if defined(TEST_116)
 #include <version>
 #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  -w %S/transitive_includes/expected.experimental_algorithm %t.actual.experimental_algorithm
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_algorithm %t.actual.experimental_algorithm
 #if defined(TEST_119)
 #include <experimental/algorithm>
 #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  -w %S/transitive_includes/expected.experimental_coroutine %t.actual.experimental_coroutine
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_coroutine %t.actual.experimental_coroutine
 #if defined(TEST_120)
 #include <experimental/coroutine>
 #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  -w %S/transitive_includes/expected.experimental_deque %t.actual.experimental_deque
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_deque %t.actual.experimental_deque
 #if defined(TEST_121)
 #include <experimental/deque>
 #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  -w %S/transitive_includes/expected.experimental_forward_list %t.actual.experimental_forward_list
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_forward_list %t.actual.experimental_forward_list
 #if defined(TEST_122)
 #include <experimental/forward_list>
 #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  -w %S/transitive_includes/expected.experimental_functional %t.actual.experimental_functional
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_functional %t.actual.experimental_functional
 #if defined(TEST_123)
 #include <experimental/functional>
 #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  -w %S/transitive_includes/expected.experimental_iterator %t.actual.experimental_iterator
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_iterator %t.actual.experimental_iterator
 #if defined(TEST_124)
 #include <experimental/iterator>
 #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  -w %S/transitive_includes/expected.experimental_list %t.actual.experimental_list
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_list %t.actual.experimental_list
 #if defined(TEST_125)
 #include <experimental/list>
 #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  -w %S/transitive_includes/expected.experimental_map %t.actual.experimental_map
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_map %t.actual.experimental_map
 #if defined(TEST_126)
 #include <experimental/map>
 #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  -w %S/transitive_includes/expected.experimental_memory_resource %t.actual.experimental_memory_resource
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_memory_resource %t.actual.experimental_memory_resource
 #if defined(TEST_127)
 #include <experimental/memory_resource>
 #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  -w %S/transitive_includes/expected.experimental_propagate_const %t.actual.experimental_propagate_const
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_propagate_const %t.actual.experimental_propagate_const
 #if defined(TEST_128)
 #include <experimental/propagate_const>
 #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  -w %S/transitive_includes/expected.experimental_regex %t.actual.experimental_regex
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_regex %t.actual.experimental_regex
 #if defined(TEST_129)
 #include <experimental/regex>
 #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  -w %S/transitive_includes/expected.experimental_set %t.actual.experimental_set
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_set %t.actual.experimental_set
 #if defined(TEST_130)
 #include <experimental/set>
 #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  -w %S/transitive_includes/expected.experimental_simd %t.actual.experimental_simd
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_simd %t.actual.experimental_simd
 #if defined(TEST_131)
 #include <experimental/simd>
 #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  -w %S/transitive_includes/expected.experimental_string %t.actual.experimental_string
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_string %t.actual.experimental_string
 #if defined(TEST_132)
 #include <experimental/string>
 #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  -w %S/transitive_includes/expected.experimental_type_traits %t.actual.experimental_type_traits
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_type_traits %t.actual.experimental_type_traits
 #if defined(TEST_133)
 #include <experimental/type_traits>
 #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  -w %S/transitive_includes/expected.experimental_unordered_map %t.actual.experimental_unordered_map
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_unordered_map %t.actual.experimental_unordered_map
 #if defined(TEST_134)
 #include <experimental/unordered_map>
 #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  -w %S/transitive_includes/expected.experimental_unordered_set %t.actual.experimental_unordered_set
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_unordered_set %t.actual.experimental_unordered_set
 #if defined(TEST_135)
 #include <experimental/unordered_set>
 #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  -w %S/transitive_includes/expected.experimental_utility %t.actual.experimental_utility
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_utility %t.actual.experimental_utility
 #if defined(TEST_136)
 #include <experimental/utility>
 #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  -w %S/transitive_includes/expected.experimental_vector %t.actual.experimental_vector
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.experimental_vector %t.actual.experimental_vector
 #if defined(TEST_137)
 #include <experimental/vector>
 #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  -w %S/transitive_includes/expected.ext_hash_map %t.actual.ext_hash_map
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ext_hash_map %t.actual.ext_hash_map
 #if defined(TEST_138)
 #include <ext/hash_map>
 #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  -w %S/transitive_includes/expected.ext_hash_set %t.actual.ext_hash_set
+// RUN: 
diff  -w %S/transitive_includes/%{cxx_std}/expected.ext_hash_set %t.actual.ext_hash_set
 #if defined(TEST_139)
 #include <ext/hash_set>
 #endif

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx11/expected.algorithm
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.algorithm
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.algorithm

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.any b/libcxx/test/libcxx/transitive_includes/cxx11/expected.any
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.any
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.any

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.array b/libcxx/test/libcxx/transitive_includes/cxx11/expected.array
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.array
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.array

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.atomic b/libcxx/test/libcxx/transitive_includes/cxx11/expected.atomic
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.atomic
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.atomic

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx11/expected.barrier
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.barrier
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.barrier

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.bit b/libcxx/test/libcxx/transitive_includes/cxx11/expected.bit
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.bit
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.bit

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx11/expected.bitset
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.bitset
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.bitset

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cassert b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cassert
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cassert
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cassert

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ccomplex
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ccomplex
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ccomplex

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cctype b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cctype
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cctype
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cctype

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cerrno b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cerrno
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cerrno
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cerrno

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cfenv b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cfenv
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cfenv
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cfenv

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cfloat b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cfloat
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cfloat
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cfloat

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.charconv b/libcxx/test/libcxx/transitive_includes/cxx11/expected.charconv
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.charconv
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.charconv

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.chrono b/libcxx/test/libcxx/transitive_includes/cxx11/expected.chrono
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.chrono
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.chrono

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cinttypes b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cinttypes
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cinttypes
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cinttypes

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ciso646 b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ciso646
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ciso646
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ciso646

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.climits b/libcxx/test/libcxx/transitive_includes/cxx11/expected.climits
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.climits
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.climits

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.clocale b/libcxx/test/libcxx/transitive_includes/cxx11/expected.clocale
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.clocale
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.clocale

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cmath b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cmath
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cmath
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cmath

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.codecvt b/libcxx/test/libcxx/transitive_includes/cxx11/expected.codecvt
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.codecvt
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.codecvt

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.compare b/libcxx/test/libcxx/transitive_includes/cxx11/expected.compare
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.compare
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.compare

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.complex b/libcxx/test/libcxx/transitive_includes/cxx11/expected.complex
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.complex
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.complex

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.concepts b/libcxx/test/libcxx/transitive_includes/cxx11/expected.concepts
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.concepts
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.concepts

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx11/expected.condition_variable
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.condition_variable
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.condition_variable

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.coroutine b/libcxx/test/libcxx/transitive_includes/cxx11/expected.coroutine
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.coroutine
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.coroutine

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.csetjmp b/libcxx/test/libcxx/transitive_includes/cxx11/expected.csetjmp
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.csetjmp
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.csetjmp

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.csignal b/libcxx/test/libcxx/transitive_includes/cxx11/expected.csignal
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.csignal
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.csignal

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cstdarg b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdarg
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cstdarg
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdarg

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cstdbool b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdbool
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cstdbool
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdbool

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cstddef b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cstddef
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cstddef
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cstddef

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cstdint b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdint
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cstdint
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cstdio b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdio
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cstdio
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdio

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cstdlib b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdlib
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cstdlib
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cstdlib

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cstring b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cstring
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cstring
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cstring

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ctgmath
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ctgmath
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ctgmath

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ctime b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ctime
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ctime
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ctime

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cuchar b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cuchar
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cuchar
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cuchar

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cwchar b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cwchar
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cwchar
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cwchar

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.cwctype b/libcxx/test/libcxx/transitive_includes/cxx11/expected.cwctype
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.cwctype
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx11/expected.deque
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.deque
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.deque

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.exception b/libcxx/test/libcxx/transitive_includes/cxx11/expected.exception
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.exception
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.exception

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.execution b/libcxx/test/libcxx/transitive_includes/cxx11/expected.execution
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.execution
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.execution

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_algorithm
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_algorithm
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_algorithm

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_coroutine
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_coroutine
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_coroutine

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_deque
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_deque
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_deque

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_forward_list
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_forward_list
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_forward_list

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_functional
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_functional
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_functional

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_iterator b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_iterator
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_iterator
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_iterator

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_list
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_list
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_list

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_map
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_map
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_map

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_memory_resource
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_memory_resource
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_memory_resource

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_propagate_const b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_propagate_const
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_propagate_const
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_propagate_const

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_regex
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_regex
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_regex

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_set
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_set
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_set

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_simd
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_simd
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_simd

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_string
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_string
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_string

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_type_traits b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_type_traits
new file mode 100644
index 0000000000000..1e6fdfeb25cfc
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_type_traits
@@ -0,0 +1 @@
+experimental/type_traits

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_unordered_map
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_map
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_unordered_map

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_unordered_set
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_unordered_set
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_unordered_set

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_utility b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_utility
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_utility
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_utility

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_vector
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_vector
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.experimental_vector

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ext_hash_map
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ext_hash_map
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ext_hash_map

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ext_hash_set
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ext_hash_set
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ext_hash_set

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.filesystem b/libcxx/test/libcxx/transitive_includes/cxx11/expected.filesystem
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.filesystem
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.filesystem

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.format b/libcxx/test/libcxx/transitive_includes/cxx11/expected.format
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.format
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.format

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx11/expected.forward_list
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.forward_list
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.forward_list

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.fstream b/libcxx/test/libcxx/transitive_includes/cxx11/expected.fstream
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.fstream
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.fstream

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.functional b/libcxx/test/libcxx/transitive_includes/cxx11/expected.functional
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.functional
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.functional

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.future b/libcxx/test/libcxx/transitive_includes/cxx11/expected.future
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.future
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.future

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.initializer_list b/libcxx/test/libcxx/transitive_includes/cxx11/expected.initializer_list
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.initializer_list
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.initializer_list

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.iomanip b/libcxx/test/libcxx/transitive_includes/cxx11/expected.iomanip
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.iomanip
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.iomanip

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ios b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ios
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ios
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ios

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.iosfwd b/libcxx/test/libcxx/transitive_includes/cxx11/expected.iosfwd
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.iosfwd
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.iosfwd

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.iostream b/libcxx/test/libcxx/transitive_includes/cxx11/expected.iostream
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.iostream
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.iostream

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.istream b/libcxx/test/libcxx/transitive_includes/cxx11/expected.istream
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.istream
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.istream

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.iterator b/libcxx/test/libcxx/transitive_includes/cxx11/expected.iterator
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.iterator
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.iterator

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.latch b/libcxx/test/libcxx/transitive_includes/cxx11/expected.latch
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.latch
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.latch

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.limits b/libcxx/test/libcxx/transitive_includes/cxx11/expected.limits
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.limits
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.limits

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.list b/libcxx/test/libcxx/transitive_includes/cxx11/expected.list
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.list
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.list

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.locale b/libcxx/test/libcxx/transitive_includes/cxx11/expected.locale
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.locale
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.locale

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.map b/libcxx/test/libcxx/transitive_includes/cxx11/expected.map
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.map
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.map

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx11/expected.memory
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.memory
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.memory

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.mutex b/libcxx/test/libcxx/transitive_includes/cxx11/expected.mutex
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.mutex
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.mutex

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.new b/libcxx/test/libcxx/transitive_includes/cxx11/expected.new
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.new
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.new

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.numbers b/libcxx/test/libcxx/transitive_includes/cxx11/expected.numbers
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.numbers
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.numbers

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.numeric b/libcxx/test/libcxx/transitive_includes/cxx11/expected.numeric
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.numeric
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.numeric

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.optional b/libcxx/test/libcxx/transitive_includes/cxx11/expected.optional
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.optional
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.optional

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ostream b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ostream
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ostream
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ostream

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx11/expected.queue
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.queue
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.queue

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.random b/libcxx/test/libcxx/transitive_includes/cxx11/expected.random
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.random
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.random

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ranges b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ranges
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ranges
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ranges

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.ratio b/libcxx/test/libcxx/transitive_includes/cxx11/expected.ratio
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.ratio
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.ratio

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.regex b/libcxx/test/libcxx/transitive_includes/cxx11/expected.regex
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.regex
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.regex

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/cxx11/expected.scoped_allocator
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.scoped_allocator
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.scoped_allocator

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.semaphore b/libcxx/test/libcxx/transitive_includes/cxx11/expected.semaphore
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.semaphore
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.semaphore

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.set b/libcxx/test/libcxx/transitive_includes/cxx11/expected.set
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.set
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.set

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx11/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/cxx11/expected.shared_mutex
new file mode 100644
index 0000000000000..81568d83b17c7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx11/expected.shared_mutex
@@ -0,0 +1,2 @@
+shared_mutex
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.span b/libcxx/test/libcxx/transitive_includes/cxx11/expected.span
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.span
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.span

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.sstream b/libcxx/test/libcxx/transitive_includes/cxx11/expected.sstream
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.sstream
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.sstream

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx11/expected.stack
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.stack
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.stack

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.stdexcept b/libcxx/test/libcxx/transitive_includes/cxx11/expected.stdexcept
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.stdexcept
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.stdexcept

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.streambuf b/libcxx/test/libcxx/transitive_includes/cxx11/expected.streambuf
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.streambuf
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.streambuf

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.string b/libcxx/test/libcxx/transitive_includes/cxx11/expected.string
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.string
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.string

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.string_view b/libcxx/test/libcxx/transitive_includes/cxx11/expected.string_view
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.string_view
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.string_view

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.strstream b/libcxx/test/libcxx/transitive_includes/cxx11/expected.strstream
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.strstream
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.strstream

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx11/expected.system_error
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.system_error
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.system_error

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.thread b/libcxx/test/libcxx/transitive_includes/cxx11/expected.thread
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.thread
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.thread

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.tuple b/libcxx/test/libcxx/transitive_includes/cxx11/expected.tuple
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.tuple
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.tuple

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.type_traits b/libcxx/test/libcxx/transitive_includes/cxx11/expected.type_traits
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.type_traits
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.type_traits

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.typeindex b/libcxx/test/libcxx/transitive_includes/cxx11/expected.typeindex
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.typeindex
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.typeindex

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.typeinfo b/libcxx/test/libcxx/transitive_includes/cxx11/expected.typeinfo
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.typeinfo
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.typeinfo

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/cxx11/expected.unordered_map
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.unordered_map
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.unordered_map

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx11/expected.unordered_set
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.unordered_set
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.unordered_set

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.utility b/libcxx/test/libcxx/transitive_includes/cxx11/expected.utility
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.utility
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.utility

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.valarray b/libcxx/test/libcxx/transitive_includes/cxx11/expected.valarray
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.valarray
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.valarray

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.variant b/libcxx/test/libcxx/transitive_includes/cxx11/expected.variant
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.variant
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.variant

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx11/expected.vector
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.vector
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.vector

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.version b/libcxx/test/libcxx/transitive_includes/cxx11/expected.version
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.version
rename to libcxx/test/libcxx/transitive_includes/cxx11/expected.version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx14/expected.algorithm
new file mode 100644
index 0000000000000..944a3eeea2d64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.algorithm
@@ -0,0 +1,28 @@
+algorithm
+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/cxx14/expected.any b/libcxx/test/libcxx/transitive_includes/cxx14/expected.any
new file mode 100644
index 0000000000000..86009188e53e3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.any
@@ -0,0 +1,27 @@
+any
+atomic
+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/cxx14/expected.array b/libcxx/test/libcxx/transitive_includes/cxx14/expected.array
new file mode 100644
index 0000000000000..7145642a8f46e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.array
@@ -0,0 +1,29 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.atomic b/libcxx/test/libcxx/transitive_includes/cxx14/expected.atomic
new file mode 100644
index 0000000000000..3e9917b3da1a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.atomic
@@ -0,0 +1,14 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx14/expected.barrier
new file mode 100644
index 0000000000000..c2865c8d3ef09
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.barrier
@@ -0,0 +1,27 @@
+atomic
+barrier
+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/cxx14/expected.bit b/libcxx/test/libcxx/transitive_includes/cxx14/expected.bit
new file mode 100644
index 0000000000000..4fb5285f8142e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.bit
@@ -0,0 +1,8 @@
+bit
+cstddef
+cstdint
+cstdlib
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx14/expected.bitset
new file mode 100644
index 0000000000000..3cf3e8dbdfc73
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.bitset
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cassert b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cassert
new file mode 100644
index 0000000000000..69b779ef2f206
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cassert
@@ -0,0 +1 @@
+cassert

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ccomplex
new file mode 100644
index 0000000000000..98bf9a8010e40
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ccomplex
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cctype b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cctype
new file mode 100644
index 0000000000000..a82e62c088dce
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cctype
@@ -0,0 +1 @@
+cctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cerrno b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cerrno
new file mode 100644
index 0000000000000..24c00a9877c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cerrno
@@ -0,0 +1 @@
+cerrno

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cfenv b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cfenv
new file mode 100644
index 0000000000000..9980586372456
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cfenv
@@ -0,0 +1 @@
+cfenv

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cfloat b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cfloat
new file mode 100644
index 0000000000000..3bb5aa14cfbfe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cfloat
@@ -0,0 +1 @@
+cfloat

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.charconv b/libcxx/test/libcxx/transitive_includes/cxx14/expected.charconv
new file mode 100644
index 0000000000000..1ab0e5d37a401
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.charconv
@@ -0,0 +1,13 @@
+cerrno
+charconv
+cmath
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+initializer_list
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.chrono b/libcxx/test/libcxx/transitive_includes/cxx14/expected.chrono
new file mode 100644
index 0000000000000..fdb624bc1df42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.chrono
@@ -0,0 +1,11 @@
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+ctime
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cinttypes b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cinttypes
new file mode 100644
index 0000000000000..911d5dd27d082
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cinttypes
@@ -0,0 +1,2 @@
+cinttypes
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ciso646 b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ciso646
new file mode 100644
index 0000000000000..6c1d5458c9c9c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ciso646
@@ -0,0 +1 @@
+ciso646

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.climits b/libcxx/test/libcxx/transitive_includes/cxx14/expected.climits
new file mode 100644
index 0000000000000..271e000221016
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.climits
@@ -0,0 +1 @@
+climits

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.clocale b/libcxx/test/libcxx/transitive_includes/cxx14/expected.clocale
new file mode 100644
index 0000000000000..0ac42c4b403ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.clocale
@@ -0,0 +1 @@
+clocale

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cmath b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cmath
new file mode 100644
index 0000000000000..7678c0e38802c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cmath
@@ -0,0 +1,6 @@
+cmath
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.codecvt b/libcxx/test/libcxx/transitive_includes/cxx14/expected.codecvt
new file mode 100644
index 0000000000000..0931ca137c0bd
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.codecvt
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+codecvt
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.compare b/libcxx/test/libcxx/transitive_includes/cxx14/expected.compare
new file mode 100644
index 0000000000000..df2d92f5d4b6c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.compare
@@ -0,0 +1,7 @@
+cmath
+compare
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.complex b/libcxx/test/libcxx/transitive_includes/cxx14/expected.complex
new file mode 100644
index 0000000000000..64161c1d331fe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.complex
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.concepts b/libcxx/test/libcxx/transitive_includes/cxx14/expected.concepts
new file mode 100644
index 0000000000000..31e9f436e6cd3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.concepts
@@ -0,0 +1,5 @@
+concepts
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx14/expected.condition_variable
new file mode 100644
index 0000000000000..968007a37cef8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.condition_variable
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+condition_variable
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.coroutine b/libcxx/test/libcxx/transitive_includes/cxx14/expected.coroutine
new file mode 100644
index 0000000000000..8dd332d472542
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.coroutine
@@ -0,0 +1,10 @@
+cmath
+compare
+coroutine
+cstddef
+cstdint
+cstring
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.csetjmp b/libcxx/test/libcxx/transitive_includes/cxx14/expected.csetjmp
new file mode 100644
index 0000000000000..2f72e67f0324d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.csetjmp
@@ -0,0 +1 @@
+csetjmp

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.csignal b/libcxx/test/libcxx/transitive_includes/cxx14/expected.csignal
new file mode 100644
index 0000000000000..c17f2a3b99dfb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.csignal
@@ -0,0 +1 @@
+csignal

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdarg b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdarg
new file mode 100644
index 0000000000000..ce71517eeb149
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdarg
@@ -0,0 +1 @@
+cstdarg

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdbool b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdbool
new file mode 100644
index 0000000000000..f3a52bba86c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdbool
@@ -0,0 +1 @@
+cstdbool

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstddef b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstddef
new file mode 100644
index 0000000000000..7b45506ea14b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstddef
@@ -0,0 +1,2 @@
+cstddef
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdint b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdint
new file mode 100644
index 0000000000000..37103a4f4b892
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdint
@@ -0,0 +1 @@
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdio b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdio
new file mode 100644
index 0000000000000..5b70aa3cf8d42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdio
@@ -0,0 +1 @@
+cstdio

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdlib b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdlib
new file mode 100644
index 0000000000000..b98a7237dde79
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstdlib
@@ -0,0 +1 @@
+cstdlib

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstring b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstring
new file mode 100644
index 0000000000000..0fdbe597c9df1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cstring
@@ -0,0 +1 @@
+cstring

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ctgmath
new file mode 100644
index 0000000000000..7467a5ab59520
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ctgmath
@@ -0,0 +1,53 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctgmath
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ctime b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ctime
new file mode 100644
index 0000000000000..ee049c40b25b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ctime
@@ -0,0 +1 @@
+ctime

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cuchar b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cuchar
new file mode 100644
index 0000000000000..588664ab50b3f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cuchar
@@ -0,0 +1 @@
+cuchar

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cwchar b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cwchar
new file mode 100644
index 0000000000000..1e6c2091fa4a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cwchar
@@ -0,0 +1,3 @@
+cctype
+cwchar
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.cwctype b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cwctype
new file mode 100644
index 0000000000000..fa1b7f2569941
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.cwctype
@@ -0,0 +1,2 @@
+cctype
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx14/expected.deque
new file mode 100644
index 0000000000000..c26bdc7479b64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.deque
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx14/expected.exception b/libcxx/test/libcxx/transitive_includes/cxx14/expected.exception
new file mode 100644
index 0000000000000..c48f9ed9e744d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.exception
@@ -0,0 +1,6 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.execution b/libcxx/test/libcxx/transitive_includes/cxx14/expected.execution
new file mode 100644
index 0000000000000..b42e7095b5800
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.execution
@@ -0,0 +1,2 @@
+execution
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_algorithm
new file mode 100644
index 0000000000000..8a5cd7de65d88
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_algorithm
@@ -0,0 +1,29 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/algorithm
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_coroutine
new file mode 100644
index 0000000000000..682f0fa0e7a83
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_coroutine
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/coroutine
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_deque
new file mode 100644
index 0000000000000..bd86d1588beb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_deque
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+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/cxx14/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_forward_list
new file mode 100644
index 0000000000000..c43fab08b41f3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_forward_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/forward_list
+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/cxx14/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_functional
new file mode 100644
index 0000000000000..87cee2d288827
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_functional
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/functional
+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/cxx14/expected.experimental_iterator b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_iterator
new file mode 100644
index 0000000000000..14d31c215ffb7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_iterator
@@ -0,0 +1,20 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+experimental/iterator
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_list
new file mode 100644
index 0000000000000..ac800654f5323
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+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/cxx14/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_map
new file mode 100644
index 0000000000000..d132098b01a1b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_map
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/map
+experimental/memory_resource
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_memory_resource
new file mode 100644
index 0000000000000..94d9abd26b6cb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_memory_resource
@@ -0,0 +1,28 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_propagate_const b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_propagate_const
new file mode 100644
index 0000000000000..a78fa83bc983f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_propagate_const
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+experimental/propagate_const
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_regex
new file mode 100644
index 0000000000000..8a49aac962c25
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_regex
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+experimental/memory_resource
+experimental/regex
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_set
new file mode 100644
index 0000000000000..f1d2953360dc6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_simd
new file mode 100644
index 0000000000000..f06f6e9cea012
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_simd
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/simd
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_string
new file mode 100644
index 0000000000000..367a9ed7da4bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_string
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+experimental/memory_resource
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/expected.experimental_type_traits b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_type_traits
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.experimental_type_traits
rename to libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_type_traits

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_unordered_map
new file mode 100644
index 0000000000000..16753ae30a7b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_unordered_map
@@ -0,0 +1,36 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_map
+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/cxx14/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_unordered_set
new file mode 100644
index 0000000000000..1aafa61386b74
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_unordered_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_utility b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_utility
new file mode 100644
index 0000000000000..a399b3ebb27c6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_utility
@@ -0,0 +1,12 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+experimental/utility
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_vector
new file mode 100644
index 0000000000000..1c569628be18e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.experimental_vector
@@ -0,0 +1,32 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+experimental/vector
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_map
new file mode 100644
index 0000000000000..459536294e0c1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_map
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_map
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_set
new file mode 100644
index 0000000000000..160335aab3676
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ext_hash_set
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_set
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.filesystem b/libcxx/test/libcxx/transitive_includes/cxx14/expected.filesystem
new file mode 100644
index 0000000000000..22e80bc111922
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.filesystem
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.format b/libcxx/test/libcxx/transitive_includes/cxx14/expected.format
new file mode 100644
index 0000000000000..08d46d27a9c04
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.format
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+charconv
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+format
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx14/expected.forward_list
new file mode 100644
index 0000000000000..33afc74bd420a
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.forward_list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx14/expected.fstream b/libcxx/test/libcxx/transitive_includes/cxx14/expected.fstream
new file mode 100644
index 0000000000000..7a892e11bfe61
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.fstream
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+fstream
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.functional b/libcxx/test/libcxx/transitive_includes/cxx14/expected.functional
new file mode 100644
index 0000000000000..7625982373f82
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.functional
@@ -0,0 +1,33 @@
+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
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.future b/libcxx/test/libcxx/transitive_includes/cxx14/expected.future
new file mode 100644
index 0000000000000..92bd4e044ecc3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.future
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+future
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.initializer_list b/libcxx/test/libcxx/transitive_includes/cxx14/expected.initializer_list
new file mode 100644
index 0000000000000..8b92a6553ca19
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.initializer_list
@@ -0,0 +1,3 @@
+cstddef
+initializer_list
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.iomanip b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iomanip
new file mode 100644
index 0000000000000..39829086f4cb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iomanip
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ios b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ios
new file mode 100644
index 0000000000000..6e7e5b2689767
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ios
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.iosfwd b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iosfwd
new file mode 100644
index 0000000000000..ff6e0e3d092b7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iosfwd
@@ -0,0 +1,2 @@
+iosfwd
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.iostream b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iostream
new file mode 100644
index 0000000000000..580aeaf867341
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iostream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iostream
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.istream b/libcxx/test/libcxx/transitive_includes/cxx14/expected.istream
new file mode 100644
index 0000000000000..fd0c4b4ca7361
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.istream
@@ -0,0 +1,49 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.iterator b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iterator
new file mode 100644
index 0000000000000..447087a3f6f96
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.iterator
@@ -0,0 +1,19 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.latch b/libcxx/test/libcxx/transitive_includes/cxx14/expected.latch
new file mode 100644
index 0000000000000..a7a6bbc912cef
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.latch
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+latch
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.limits b/libcxx/test/libcxx/transitive_includes/cxx14/expected.limits
new file mode 100644
index 0000000000000..49fcbf44c5b21
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.limits
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.list b/libcxx/test/libcxx/transitive_includes/cxx14/expected.list
new file mode 100644
index 0000000000000..b596079c340b0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+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/cxx14/expected.locale b/libcxx/test/libcxx/transitive_includes/cxx14/expected.locale
new file mode 100644
index 0000000000000..29719367689e4
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.locale
@@ -0,0 +1,46 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.map b/libcxx/test/libcxx/transitive_includes/cxx14/expected.map
new file mode 100644
index 0000000000000..c871579ea35ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.map
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx14/expected.memory
new file mode 100644
index 0000000000000..f36910fde696d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.memory
@@ -0,0 +1,26 @@
+atomic
+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/cxx14/expected.mutex b/libcxx/test/libcxx/transitive_includes/cxx14/expected.mutex
new file mode 100644
index 0000000000000..4d101cb290c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.mutex
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.new b/libcxx/test/libcxx/transitive_includes/cxx14/expected.new
new file mode 100644
index 0000000000000..9fd8f6aabd0c9
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.new
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+new
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.numbers b/libcxx/test/libcxx/transitive_includes/cxx14/expected.numbers
new file mode 100644
index 0000000000000..a8b65fc82096b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.numbers
@@ -0,0 +1,6 @@
+concepts
+cstddef
+cstdint
+numbers
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.numeric b/libcxx/test/libcxx/transitive_includes/cxx14/expected.numeric
new file mode 100644
index 0000000000000..558b32457eb4c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.numeric
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.optional b/libcxx/test/libcxx/transitive_includes/cxx14/expected.optional
new file mode 100644
index 0000000000000..993ce23d8009d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.optional
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ostream b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ostream
new file mode 100644
index 0000000000000..762d13c26ac3c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ostream
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx14/expected.queue
new file mode 100644
index 0000000000000..5861852fc5322
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.queue
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+queue
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.random b/libcxx/test/libcxx/transitive_includes/cxx14/expected.random
new file mode 100644
index 0000000000000..96a956ad800a1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.random
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+random
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.ranges b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ranges
new file mode 100644
index 0000000000000..3dbb13bb9680f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ranges
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+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/cxx14/expected.ratio b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ratio
new file mode 100644
index 0000000000000..deda945f1b575
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.ratio
@@ -0,0 +1,6 @@
+climits
+cstddef
+cstdint
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.regex b/libcxx/test/libcxx/transitive_includes/cxx14/expected.regex
new file mode 100644
index 0000000000000..76df207366621
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.regex
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/cxx14/expected.scoped_allocator
new file mode 100644
index 0000000000000..22dcb319a5e67
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.scoped_allocator
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+scoped_allocator
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.semaphore b/libcxx/test/libcxx/transitive_includes/cxx14/expected.semaphore
new file mode 100644
index 0000000000000..d6802e25aa70d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.semaphore
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+semaphore
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.set b/libcxx/test/libcxx/transitive_includes/cxx14/expected.set
new file mode 100644
index 0000000000000..849e87331b725
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+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/cxx14/expected.shared_mutex
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/expected.shared_mutex
rename to libcxx/test/libcxx/transitive_includes/cxx14/expected.shared_mutex

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.span b/libcxx/test/libcxx/transitive_includes/cxx14/expected.span
new file mode 100644
index 0000000000000..a46c30df88516
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.span
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+span
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.sstream b/libcxx/test/libcxx/transitive_includes/cxx14/expected.sstream
new file mode 100644
index 0000000000000..1724fbdde39ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.sstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx14/expected.stack
new file mode 100644
index 0000000000000..1a7d18cb85f24
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.stack
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx14/expected.stdexcept b/libcxx/test/libcxx/transitive_includes/cxx14/expected.stdexcept
new file mode 100644
index 0000000000000..b8dd684ffcbbf
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.stdexcept
@@ -0,0 +1,8 @@
+cstddef
+cstdint
+cstdlib
+exception
+iosfwd
+stdexcept
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.streambuf b/libcxx/test/libcxx/transitive_includes/cxx14/expected.streambuf
new file mode 100644
index 0000000000000..a3001ce44a1bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.streambuf
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.string b/libcxx/test/libcxx/transitive_includes/cxx14/expected.string
new file mode 100644
index 0000000000000..0dacf739a7859
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.string
@@ -0,0 +1,39 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.string_view b/libcxx/test/libcxx/transitive_includes/cxx14/expected.string_view
new file mode 100644
index 0000000000000..e814351725ef2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.string_view
@@ -0,0 +1,38 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+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/cxx14/expected.strstream b/libcxx/test/libcxx/transitive_includes/cxx14/expected.strstream
new file mode 100644
index 0000000000000..782153b595b63
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.strstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+strstream
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx14/expected.system_error
new file mode 100644
index 0000000000000..4101ee5209a39
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.system_error
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.thread b/libcxx/test/libcxx/transitive_includes/cxx14/expected.thread
new file mode 100644
index 0000000000000..ab8c3c7c85ba2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.thread
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.tuple b/libcxx/test/libcxx/transitive_includes/cxx14/expected.tuple
new file mode 100644
index 0000000000000..69858dc888c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.tuple
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.type_traits b/libcxx/test/libcxx/transitive_includes/cxx14/expected.type_traits
new file mode 100644
index 0000000000000..8448275a1728c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.type_traits
@@ -0,0 +1,4 @@
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.typeindex b/libcxx/test/libcxx/transitive_includes/cxx14/expected.typeindex
new file mode 100644
index 0000000000000..8f1c652535378
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.typeindex
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+type_traits
+typeindex
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.typeinfo b/libcxx/test/libcxx/transitive_includes/cxx14/expected.typeinfo
new file mode 100644
index 0000000000000..609a604805c9b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.typeinfo
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+typeinfo
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_map
new file mode 100644
index 0000000000000..2250cf96690a3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_map
@@ -0,0 +1,30 @@
+algorithm
+atomic
+bit
+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
+unordered_map
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_set
new file mode 100644
index 0000000000000..9352f0b05b721
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.unordered_set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.utility b/libcxx/test/libcxx/transitive_includes/cxx14/expected.utility
new file mode 100644
index 0000000000000..799a14724cf41
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.utility
@@ -0,0 +1,11 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.valarray b/libcxx/test/libcxx/transitive_includes/cxx14/expected.valarray
new file mode 100644
index 0000000000000..a069f37119fa8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.valarray
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+valarray
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.variant b/libcxx/test/libcxx/transitive_includes/cxx14/expected.variant
new file mode 100644
index 0000000000000..d94d72974cb84
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.variant
@@ -0,0 +1,17 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx14/expected.vector
new file mode 100644
index 0000000000000..5fb9d7d19cc12
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.vector
@@ -0,0 +1,29 @@
+algorithm
+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
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14/expected.version b/libcxx/test/libcxx/transitive_includes/cxx14/expected.version
new file mode 100644
index 0000000000000..088eda41aa61d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx14/expected.version
@@ -0,0 +1 @@
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx17/expected.algorithm
new file mode 100644
index 0000000000000..944a3eeea2d64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.algorithm
@@ -0,0 +1,28 @@
+algorithm
+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/cxx17/expected.any b/libcxx/test/libcxx/transitive_includes/cxx17/expected.any
new file mode 100644
index 0000000000000..86009188e53e3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.any
@@ -0,0 +1,27 @@
+any
+atomic
+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/cxx17/expected.array b/libcxx/test/libcxx/transitive_includes/cxx17/expected.array
new file mode 100644
index 0000000000000..7145642a8f46e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.array
@@ -0,0 +1,29 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.atomic b/libcxx/test/libcxx/transitive_includes/cxx17/expected.atomic
new file mode 100644
index 0000000000000..3e9917b3da1a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.atomic
@@ -0,0 +1,14 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx17/expected.barrier
new file mode 100644
index 0000000000000..c2865c8d3ef09
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.barrier
@@ -0,0 +1,27 @@
+atomic
+barrier
+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/cxx17/expected.bit b/libcxx/test/libcxx/transitive_includes/cxx17/expected.bit
new file mode 100644
index 0000000000000..4fb5285f8142e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.bit
@@ -0,0 +1,8 @@
+bit
+cstddef
+cstdint
+cstdlib
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx17/expected.bitset
new file mode 100644
index 0000000000000..3cf3e8dbdfc73
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.bitset
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cassert b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cassert
new file mode 100644
index 0000000000000..69b779ef2f206
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cassert
@@ -0,0 +1 @@
+cassert

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ccomplex
new file mode 100644
index 0000000000000..98bf9a8010e40
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ccomplex
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cctype b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cctype
new file mode 100644
index 0000000000000..a82e62c088dce
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cctype
@@ -0,0 +1 @@
+cctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cerrno b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cerrno
new file mode 100644
index 0000000000000..24c00a9877c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cerrno
@@ -0,0 +1 @@
+cerrno

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cfenv b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cfenv
new file mode 100644
index 0000000000000..9980586372456
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cfenv
@@ -0,0 +1 @@
+cfenv

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cfloat b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cfloat
new file mode 100644
index 0000000000000..3bb5aa14cfbfe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cfloat
@@ -0,0 +1 @@
+cfloat

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.charconv b/libcxx/test/libcxx/transitive_includes/cxx17/expected.charconv
new file mode 100644
index 0000000000000..1ab0e5d37a401
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.charconv
@@ -0,0 +1,13 @@
+cerrno
+charconv
+cmath
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+initializer_list
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.chrono b/libcxx/test/libcxx/transitive_includes/cxx17/expected.chrono
new file mode 100644
index 0000000000000..fdb624bc1df42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.chrono
@@ -0,0 +1,11 @@
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+ctime
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cinttypes b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cinttypes
new file mode 100644
index 0000000000000..911d5dd27d082
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cinttypes
@@ -0,0 +1,2 @@
+cinttypes
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ciso646 b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ciso646
new file mode 100644
index 0000000000000..6c1d5458c9c9c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ciso646
@@ -0,0 +1 @@
+ciso646

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.climits b/libcxx/test/libcxx/transitive_includes/cxx17/expected.climits
new file mode 100644
index 0000000000000..271e000221016
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.climits
@@ -0,0 +1 @@
+climits

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.clocale b/libcxx/test/libcxx/transitive_includes/cxx17/expected.clocale
new file mode 100644
index 0000000000000..0ac42c4b403ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.clocale
@@ -0,0 +1 @@
+clocale

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cmath b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cmath
new file mode 100644
index 0000000000000..7678c0e38802c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cmath
@@ -0,0 +1,6 @@
+cmath
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.codecvt b/libcxx/test/libcxx/transitive_includes/cxx17/expected.codecvt
new file mode 100644
index 0000000000000..0931ca137c0bd
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.codecvt
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+codecvt
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.compare b/libcxx/test/libcxx/transitive_includes/cxx17/expected.compare
new file mode 100644
index 0000000000000..df2d92f5d4b6c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.compare
@@ -0,0 +1,7 @@
+cmath
+compare
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.complex b/libcxx/test/libcxx/transitive_includes/cxx17/expected.complex
new file mode 100644
index 0000000000000..64161c1d331fe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.complex
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.concepts b/libcxx/test/libcxx/transitive_includes/cxx17/expected.concepts
new file mode 100644
index 0000000000000..31e9f436e6cd3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.concepts
@@ -0,0 +1,5 @@
+concepts
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx17/expected.condition_variable
new file mode 100644
index 0000000000000..968007a37cef8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.condition_variable
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+condition_variable
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.coroutine b/libcxx/test/libcxx/transitive_includes/cxx17/expected.coroutine
new file mode 100644
index 0000000000000..8dd332d472542
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.coroutine
@@ -0,0 +1,10 @@
+cmath
+compare
+coroutine
+cstddef
+cstdint
+cstring
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.csetjmp b/libcxx/test/libcxx/transitive_includes/cxx17/expected.csetjmp
new file mode 100644
index 0000000000000..2f72e67f0324d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.csetjmp
@@ -0,0 +1 @@
+csetjmp

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.csignal b/libcxx/test/libcxx/transitive_includes/cxx17/expected.csignal
new file mode 100644
index 0000000000000..c17f2a3b99dfb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.csignal
@@ -0,0 +1 @@
+csignal

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdarg b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdarg
new file mode 100644
index 0000000000000..ce71517eeb149
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdarg
@@ -0,0 +1 @@
+cstdarg

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdbool b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdbool
new file mode 100644
index 0000000000000..f3a52bba86c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdbool
@@ -0,0 +1 @@
+cstdbool

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstddef b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstddef
new file mode 100644
index 0000000000000..7b45506ea14b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstddef
@@ -0,0 +1,2 @@
+cstddef
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdint b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdint
new file mode 100644
index 0000000000000..37103a4f4b892
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdint
@@ -0,0 +1 @@
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdio b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdio
new file mode 100644
index 0000000000000..5b70aa3cf8d42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdio
@@ -0,0 +1 @@
+cstdio

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdlib b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdlib
new file mode 100644
index 0000000000000..b98a7237dde79
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstdlib
@@ -0,0 +1 @@
+cstdlib

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstring b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstring
new file mode 100644
index 0000000000000..0fdbe597c9df1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cstring
@@ -0,0 +1 @@
+cstring

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ctgmath
new file mode 100644
index 0000000000000..7467a5ab59520
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ctgmath
@@ -0,0 +1,53 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctgmath
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ctime b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ctime
new file mode 100644
index 0000000000000..ee049c40b25b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ctime
@@ -0,0 +1 @@
+ctime

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cuchar b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cuchar
new file mode 100644
index 0000000000000..588664ab50b3f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cuchar
@@ -0,0 +1 @@
+cuchar

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cwchar b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cwchar
new file mode 100644
index 0000000000000..1e6c2091fa4a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cwchar
@@ -0,0 +1,3 @@
+cctype
+cwchar
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.cwctype b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cwctype
new file mode 100644
index 0000000000000..fa1b7f2569941
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.cwctype
@@ -0,0 +1,2 @@
+cctype
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx17/expected.deque
new file mode 100644
index 0000000000000..c26bdc7479b64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.deque
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx17/expected.exception b/libcxx/test/libcxx/transitive_includes/cxx17/expected.exception
new file mode 100644
index 0000000000000..c48f9ed9e744d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.exception
@@ -0,0 +1,6 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.execution b/libcxx/test/libcxx/transitive_includes/cxx17/expected.execution
new file mode 100644
index 0000000000000..b42e7095b5800
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.execution
@@ -0,0 +1,2 @@
+execution
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_algorithm
new file mode 100644
index 0000000000000..8a5cd7de65d88
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_algorithm
@@ -0,0 +1,29 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/algorithm
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_coroutine
new file mode 100644
index 0000000000000..682f0fa0e7a83
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_coroutine
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/coroutine
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_deque
new file mode 100644
index 0000000000000..bd86d1588beb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_deque
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+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/cxx17/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_forward_list
new file mode 100644
index 0000000000000..c43fab08b41f3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_forward_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/forward_list
+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/cxx17/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_functional
new file mode 100644
index 0000000000000..87cee2d288827
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_functional
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/functional
+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/cxx17/expected.experimental_iterator b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_iterator
new file mode 100644
index 0000000000000..14d31c215ffb7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_iterator
@@ -0,0 +1,20 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+experimental/iterator
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_list
new file mode 100644
index 0000000000000..ac800654f5323
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+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/cxx17/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_map
new file mode 100644
index 0000000000000..d132098b01a1b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_map
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/map
+experimental/memory_resource
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_memory_resource
new file mode 100644
index 0000000000000..94d9abd26b6cb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_memory_resource
@@ -0,0 +1,28 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_propagate_const b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_propagate_const
new file mode 100644
index 0000000000000..a78fa83bc983f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_propagate_const
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+experimental/propagate_const
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_regex
new file mode 100644
index 0000000000000..8a49aac962c25
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_regex
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+experimental/memory_resource
+experimental/regex
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_set
new file mode 100644
index 0000000000000..f1d2953360dc6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_simd
new file mode 100644
index 0000000000000..f06f6e9cea012
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_simd
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/simd
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_string
new file mode 100644
index 0000000000000..367a9ed7da4bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_string
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+experimental/memory_resource
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_type_traits b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_type_traits
new file mode 100644
index 0000000000000..c1e83e731fbd2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_type_traits
@@ -0,0 +1,6 @@
+cstddef
+cstdint
+experimental/type_traits
+initializer_list
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_unordered_map
new file mode 100644
index 0000000000000..16753ae30a7b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_unordered_map
@@ -0,0 +1,36 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_map
+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/cxx17/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_unordered_set
new file mode 100644
index 0000000000000..1aafa61386b74
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_unordered_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_utility b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_utility
new file mode 100644
index 0000000000000..a399b3ebb27c6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_utility
@@ -0,0 +1,12 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+experimental/utility
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_vector
new file mode 100644
index 0000000000000..1c569628be18e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.experimental_vector
@@ -0,0 +1,32 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+experimental/vector
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_map
new file mode 100644
index 0000000000000..459536294e0c1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_map
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_map
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_set
new file mode 100644
index 0000000000000..160335aab3676
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ext_hash_set
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_set
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.filesystem b/libcxx/test/libcxx/transitive_includes/cxx17/expected.filesystem
new file mode 100644
index 0000000000000..22e80bc111922
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.filesystem
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.format b/libcxx/test/libcxx/transitive_includes/cxx17/expected.format
new file mode 100644
index 0000000000000..08d46d27a9c04
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.format
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+charconv
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+format
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx17/expected.forward_list
new file mode 100644
index 0000000000000..33afc74bd420a
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.forward_list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx17/expected.fstream b/libcxx/test/libcxx/transitive_includes/cxx17/expected.fstream
new file mode 100644
index 0000000000000..7a892e11bfe61
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.fstream
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+fstream
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.functional b/libcxx/test/libcxx/transitive_includes/cxx17/expected.functional
new file mode 100644
index 0000000000000..7625982373f82
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.functional
@@ -0,0 +1,33 @@
+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
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.future b/libcxx/test/libcxx/transitive_includes/cxx17/expected.future
new file mode 100644
index 0000000000000..92bd4e044ecc3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.future
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+future
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.initializer_list b/libcxx/test/libcxx/transitive_includes/cxx17/expected.initializer_list
new file mode 100644
index 0000000000000..8b92a6553ca19
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.initializer_list
@@ -0,0 +1,3 @@
+cstddef
+initializer_list
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.iomanip b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iomanip
new file mode 100644
index 0000000000000..39829086f4cb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iomanip
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ios b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ios
new file mode 100644
index 0000000000000..6e7e5b2689767
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ios
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.iosfwd b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iosfwd
new file mode 100644
index 0000000000000..ff6e0e3d092b7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iosfwd
@@ -0,0 +1,2 @@
+iosfwd
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.iostream b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iostream
new file mode 100644
index 0000000000000..580aeaf867341
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iostream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iostream
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.istream b/libcxx/test/libcxx/transitive_includes/cxx17/expected.istream
new file mode 100644
index 0000000000000..fd0c4b4ca7361
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.istream
@@ -0,0 +1,49 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.iterator b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iterator
new file mode 100644
index 0000000000000..447087a3f6f96
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.iterator
@@ -0,0 +1,19 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.latch b/libcxx/test/libcxx/transitive_includes/cxx17/expected.latch
new file mode 100644
index 0000000000000..a7a6bbc912cef
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.latch
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+latch
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.limits b/libcxx/test/libcxx/transitive_includes/cxx17/expected.limits
new file mode 100644
index 0000000000000..49fcbf44c5b21
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.limits
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.list b/libcxx/test/libcxx/transitive_includes/cxx17/expected.list
new file mode 100644
index 0000000000000..b596079c340b0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+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/cxx17/expected.locale b/libcxx/test/libcxx/transitive_includes/cxx17/expected.locale
new file mode 100644
index 0000000000000..29719367689e4
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.locale
@@ -0,0 +1,46 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.map b/libcxx/test/libcxx/transitive_includes/cxx17/expected.map
new file mode 100644
index 0000000000000..c871579ea35ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.map
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx17/expected.memory
new file mode 100644
index 0000000000000..f36910fde696d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.memory
@@ -0,0 +1,26 @@
+atomic
+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/cxx17/expected.mutex b/libcxx/test/libcxx/transitive_includes/cxx17/expected.mutex
new file mode 100644
index 0000000000000..4d101cb290c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.mutex
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.new b/libcxx/test/libcxx/transitive_includes/cxx17/expected.new
new file mode 100644
index 0000000000000..9fd8f6aabd0c9
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.new
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+new
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.numbers b/libcxx/test/libcxx/transitive_includes/cxx17/expected.numbers
new file mode 100644
index 0000000000000..a8b65fc82096b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.numbers
@@ -0,0 +1,6 @@
+concepts
+cstddef
+cstdint
+numbers
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.numeric b/libcxx/test/libcxx/transitive_includes/cxx17/expected.numeric
new file mode 100644
index 0000000000000..558b32457eb4c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.numeric
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.optional b/libcxx/test/libcxx/transitive_includes/cxx17/expected.optional
new file mode 100644
index 0000000000000..993ce23d8009d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.optional
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ostream b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ostream
new file mode 100644
index 0000000000000..762d13c26ac3c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ostream
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx17/expected.queue
new file mode 100644
index 0000000000000..5861852fc5322
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.queue
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+queue
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.random b/libcxx/test/libcxx/transitive_includes/cxx17/expected.random
new file mode 100644
index 0000000000000..96a956ad800a1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.random
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+random
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.ranges b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ranges
new file mode 100644
index 0000000000000..3dbb13bb9680f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ranges
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+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/cxx17/expected.ratio b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ratio
new file mode 100644
index 0000000000000..deda945f1b575
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.ratio
@@ -0,0 +1,6 @@
+climits
+cstddef
+cstdint
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.regex b/libcxx/test/libcxx/transitive_includes/cxx17/expected.regex
new file mode 100644
index 0000000000000..76df207366621
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.regex
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/cxx17/expected.scoped_allocator
new file mode 100644
index 0000000000000..22dcb319a5e67
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.scoped_allocator
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+scoped_allocator
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.semaphore b/libcxx/test/libcxx/transitive_includes/cxx17/expected.semaphore
new file mode 100644
index 0000000000000..d6802e25aa70d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.semaphore
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+semaphore
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.set b/libcxx/test/libcxx/transitive_includes/cxx17/expected.set
new file mode 100644
index 0000000000000..849e87331b725
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/cxx17/expected.shared_mutex
new file mode 100644
index 0000000000000..fdea61e19bba8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.shared_mutex
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+shared_mutex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.span b/libcxx/test/libcxx/transitive_includes/cxx17/expected.span
new file mode 100644
index 0000000000000..a46c30df88516
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.span
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+span
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.sstream b/libcxx/test/libcxx/transitive_includes/cxx17/expected.sstream
new file mode 100644
index 0000000000000..1724fbdde39ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.sstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx17/expected.stack
new file mode 100644
index 0000000000000..1a7d18cb85f24
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.stack
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx17/expected.stdexcept b/libcxx/test/libcxx/transitive_includes/cxx17/expected.stdexcept
new file mode 100644
index 0000000000000..b8dd684ffcbbf
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.stdexcept
@@ -0,0 +1,8 @@
+cstddef
+cstdint
+cstdlib
+exception
+iosfwd
+stdexcept
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.streambuf b/libcxx/test/libcxx/transitive_includes/cxx17/expected.streambuf
new file mode 100644
index 0000000000000..a3001ce44a1bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.streambuf
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.string b/libcxx/test/libcxx/transitive_includes/cxx17/expected.string
new file mode 100644
index 0000000000000..0dacf739a7859
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.string
@@ -0,0 +1,39 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.string_view b/libcxx/test/libcxx/transitive_includes/cxx17/expected.string_view
new file mode 100644
index 0000000000000..e814351725ef2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.string_view
@@ -0,0 +1,38 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+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/cxx17/expected.strstream b/libcxx/test/libcxx/transitive_includes/cxx17/expected.strstream
new file mode 100644
index 0000000000000..782153b595b63
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.strstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+strstream
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx17/expected.system_error
new file mode 100644
index 0000000000000..4101ee5209a39
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.system_error
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.thread b/libcxx/test/libcxx/transitive_includes/cxx17/expected.thread
new file mode 100644
index 0000000000000..ab8c3c7c85ba2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.thread
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.tuple b/libcxx/test/libcxx/transitive_includes/cxx17/expected.tuple
new file mode 100644
index 0000000000000..69858dc888c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.tuple
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.type_traits b/libcxx/test/libcxx/transitive_includes/cxx17/expected.type_traits
new file mode 100644
index 0000000000000..8448275a1728c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.type_traits
@@ -0,0 +1,4 @@
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.typeindex b/libcxx/test/libcxx/transitive_includes/cxx17/expected.typeindex
new file mode 100644
index 0000000000000..8f1c652535378
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.typeindex
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+type_traits
+typeindex
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.typeinfo b/libcxx/test/libcxx/transitive_includes/cxx17/expected.typeinfo
new file mode 100644
index 0000000000000..609a604805c9b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.typeinfo
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+typeinfo
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_map
new file mode 100644
index 0000000000000..2250cf96690a3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_map
@@ -0,0 +1,30 @@
+algorithm
+atomic
+bit
+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
+unordered_map
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_set
new file mode 100644
index 0000000000000..9352f0b05b721
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.unordered_set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.utility b/libcxx/test/libcxx/transitive_includes/cxx17/expected.utility
new file mode 100644
index 0000000000000..799a14724cf41
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.utility
@@ -0,0 +1,11 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.valarray b/libcxx/test/libcxx/transitive_includes/cxx17/expected.valarray
new file mode 100644
index 0000000000000..a069f37119fa8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.valarray
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+valarray
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.variant b/libcxx/test/libcxx/transitive_includes/cxx17/expected.variant
new file mode 100644
index 0000000000000..d94d72974cb84
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.variant
@@ -0,0 +1,17 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx17/expected.vector
new file mode 100644
index 0000000000000..5fb9d7d19cc12
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.vector
@@ -0,0 +1,29 @@
+algorithm
+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
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17/expected.version b/libcxx/test/libcxx/transitive_includes/cxx17/expected.version
new file mode 100644
index 0000000000000..088eda41aa61d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx17/expected.version
@@ -0,0 +1 @@
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm
new file mode 100644
index 0000000000000..944a3eeea2d64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm
@@ -0,0 +1,28 @@
+algorithm
+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/cxx20/expected.any b/libcxx/test/libcxx/transitive_includes/cxx20/expected.any
new file mode 100644
index 0000000000000..86009188e53e3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.any
@@ -0,0 +1,27 @@
+any
+atomic
+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/cxx20/expected.array b/libcxx/test/libcxx/transitive_includes/cxx20/expected.array
new file mode 100644
index 0000000000000..7145642a8f46e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.array
@@ -0,0 +1,29 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic b/libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic
new file mode 100644
index 0000000000000..3e9917b3da1a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic
@@ -0,0 +1,14 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier
new file mode 100644
index 0000000000000..c2865c8d3ef09
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier
@@ -0,0 +1,27 @@
+atomic
+barrier
+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/cxx20/expected.bit b/libcxx/test/libcxx/transitive_includes/cxx20/expected.bit
new file mode 100644
index 0000000000000..4fb5285f8142e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.bit
@@ -0,0 +1,8 @@
+bit
+cstddef
+cstdint
+cstdlib
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset
new file mode 100644
index 0000000000000..3cf3e8dbdfc73
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cassert b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cassert
new file mode 100644
index 0000000000000..69b779ef2f206
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cassert
@@ -0,0 +1 @@
+cassert

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex
new file mode 100644
index 0000000000000..98bf9a8010e40
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cctype b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cctype
new file mode 100644
index 0000000000000..a82e62c088dce
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cctype
@@ -0,0 +1 @@
+cctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cerrno b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cerrno
new file mode 100644
index 0000000000000..24c00a9877c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cerrno
@@ -0,0 +1 @@
+cerrno

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cfenv b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cfenv
new file mode 100644
index 0000000000000..9980586372456
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cfenv
@@ -0,0 +1 @@
+cfenv

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cfloat b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cfloat
new file mode 100644
index 0000000000000..3bb5aa14cfbfe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cfloat
@@ -0,0 +1 @@
+cfloat

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.charconv b/libcxx/test/libcxx/transitive_includes/cxx20/expected.charconv
new file mode 100644
index 0000000000000..1ab0e5d37a401
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.charconv
@@ -0,0 +1,13 @@
+cerrno
+charconv
+cmath
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+initializer_list
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.chrono b/libcxx/test/libcxx/transitive_includes/cxx20/expected.chrono
new file mode 100644
index 0000000000000..fdb624bc1df42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.chrono
@@ -0,0 +1,11 @@
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+ctime
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cinttypes b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cinttypes
new file mode 100644
index 0000000000000..911d5dd27d082
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cinttypes
@@ -0,0 +1,2 @@
+cinttypes
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ciso646 b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ciso646
new file mode 100644
index 0000000000000..6c1d5458c9c9c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ciso646
@@ -0,0 +1 @@
+ciso646

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.climits b/libcxx/test/libcxx/transitive_includes/cxx20/expected.climits
new file mode 100644
index 0000000000000..271e000221016
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.climits
@@ -0,0 +1 @@
+climits

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.clocale b/libcxx/test/libcxx/transitive_includes/cxx20/expected.clocale
new file mode 100644
index 0000000000000..0ac42c4b403ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.clocale
@@ -0,0 +1 @@
+clocale

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cmath b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cmath
new file mode 100644
index 0000000000000..7678c0e38802c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cmath
@@ -0,0 +1,6 @@
+cmath
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt b/libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt
new file mode 100644
index 0000000000000..0931ca137c0bd
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+codecvt
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.compare b/libcxx/test/libcxx/transitive_includes/cxx20/expected.compare
new file mode 100644
index 0000000000000..df2d92f5d4b6c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.compare
@@ -0,0 +1,7 @@
+cmath
+compare
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.complex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.complex
new file mode 100644
index 0000000000000..64161c1d331fe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.complex
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.concepts b/libcxx/test/libcxx/transitive_includes/cxx20/expected.concepts
new file mode 100644
index 0000000000000..31e9f436e6cd3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.concepts
@@ -0,0 +1,5 @@
+concepts
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable
new file mode 100644
index 0000000000000..968007a37cef8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+condition_variable
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.coroutine b/libcxx/test/libcxx/transitive_includes/cxx20/expected.coroutine
new file mode 100644
index 0000000000000..8dd332d472542
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.coroutine
@@ -0,0 +1,10 @@
+cmath
+compare
+coroutine
+cstddef
+cstdint
+cstring
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.csetjmp b/libcxx/test/libcxx/transitive_includes/cxx20/expected.csetjmp
new file mode 100644
index 0000000000000..2f72e67f0324d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.csetjmp
@@ -0,0 +1 @@
+csetjmp

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.csignal b/libcxx/test/libcxx/transitive_includes/cxx20/expected.csignal
new file mode 100644
index 0000000000000..c17f2a3b99dfb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.csignal
@@ -0,0 +1 @@
+csignal

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdarg b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdarg
new file mode 100644
index 0000000000000..ce71517eeb149
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdarg
@@ -0,0 +1 @@
+cstdarg

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdbool b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdbool
new file mode 100644
index 0000000000000..f3a52bba86c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdbool
@@ -0,0 +1 @@
+cstdbool

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstddef b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstddef
new file mode 100644
index 0000000000000..7b45506ea14b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstddef
@@ -0,0 +1,2 @@
+cstddef
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdint b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdint
new file mode 100644
index 0000000000000..37103a4f4b892
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdint
@@ -0,0 +1 @@
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdio b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdio
new file mode 100644
index 0000000000000..5b70aa3cf8d42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdio
@@ -0,0 +1 @@
+cstdio

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdlib b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdlib
new file mode 100644
index 0000000000000..b98a7237dde79
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstdlib
@@ -0,0 +1 @@
+cstdlib

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstring b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstring
new file mode 100644
index 0000000000000..0fdbe597c9df1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cstring
@@ -0,0 +1 @@
+cstring

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath
new file mode 100644
index 0000000000000..7467a5ab59520
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath
@@ -0,0 +1,53 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctgmath
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctime b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctime
new file mode 100644
index 0000000000000..ee049c40b25b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctime
@@ -0,0 +1 @@
+ctime

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cuchar b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cuchar
new file mode 100644
index 0000000000000..588664ab50b3f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cuchar
@@ -0,0 +1 @@
+cuchar

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cwchar b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cwchar
new file mode 100644
index 0000000000000..1e6c2091fa4a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cwchar
@@ -0,0 +1,3 @@
+cctype
+cwchar
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.cwctype b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cwctype
new file mode 100644
index 0000000000000..fa1b7f2569941
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.cwctype
@@ -0,0 +1,2 @@
+cctype
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx20/expected.deque
new file mode 100644
index 0000000000000..c26bdc7479b64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.deque
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx20/expected.exception b/libcxx/test/libcxx/transitive_includes/cxx20/expected.exception
new file mode 100644
index 0000000000000..c48f9ed9e744d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.exception
@@ -0,0 +1,6 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.execution b/libcxx/test/libcxx/transitive_includes/cxx20/expected.execution
new file mode 100644
index 0000000000000..b42e7095b5800
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.execution
@@ -0,0 +1,2 @@
+execution
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm
new file mode 100644
index 0000000000000..8a5cd7de65d88
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm
@@ -0,0 +1,29 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/algorithm
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine
new file mode 100644
index 0000000000000..682f0fa0e7a83
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/coroutine
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque
new file mode 100644
index 0000000000000..bd86d1588beb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+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/cxx20/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list
new file mode 100644
index 0000000000000..c43fab08b41f3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/forward_list
+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/cxx20/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional
new file mode 100644
index 0000000000000..87cee2d288827
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/functional
+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/cxx20/expected.experimental_iterator b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_iterator
new file mode 100644
index 0000000000000..14d31c215ffb7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_iterator
@@ -0,0 +1,20 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+experimental/iterator
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list
new file mode 100644
index 0000000000000..ac800654f5323
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+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/cxx20/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map
new file mode 100644
index 0000000000000..d132098b01a1b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/map
+experimental/memory_resource
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource
new file mode 100644
index 0000000000000..94d9abd26b6cb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource
@@ -0,0 +1,28 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_propagate_const b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_propagate_const
new file mode 100644
index 0000000000000..a78fa83bc983f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_propagate_const
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+experimental/propagate_const
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex
new file mode 100644
index 0000000000000..8a49aac962c25
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+experimental/memory_resource
+experimental/regex
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set
new file mode 100644
index 0000000000000..f1d2953360dc6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd
new file mode 100644
index 0000000000000..f06f6e9cea012
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/simd
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string
new file mode 100644
index 0000000000000..367a9ed7da4bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+experimental/memory_resource
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_type_traits b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_type_traits
new file mode 100644
index 0000000000000..c1e83e731fbd2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_type_traits
@@ -0,0 +1,6 @@
+cstddef
+cstdint
+experimental/type_traits
+initializer_list
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map
new file mode 100644
index 0000000000000..16753ae30a7b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map
@@ -0,0 +1,36 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_map
+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/cxx20/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set
new file mode 100644
index 0000000000000..1aafa61386b74
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_utility b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_utility
new file mode 100644
index 0000000000000..a399b3ebb27c6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_utility
@@ -0,0 +1,12 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+experimental/utility
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector
new file mode 100644
index 0000000000000..1c569628be18e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector
@@ -0,0 +1,32 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+experimental/vector
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map
new file mode 100644
index 0000000000000..459536294e0c1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_map
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set
new file mode 100644
index 0000000000000..160335aab3676
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_set
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem b/libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem
new file mode 100644
index 0000000000000..22e80bc111922
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.format b/libcxx/test/libcxx/transitive_includes/cxx20/expected.format
new file mode 100644
index 0000000000000..08d46d27a9c04
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.format
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+charconv
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+format
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list
new file mode 100644
index 0000000000000..33afc74bd420a
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx20/expected.fstream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream
new file mode 100644
index 0000000000000..7a892e11bfe61
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+fstream
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.functional b/libcxx/test/libcxx/transitive_includes/cxx20/expected.functional
new file mode 100644
index 0000000000000..7625982373f82
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.functional
@@ -0,0 +1,33 @@
+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
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.future b/libcxx/test/libcxx/transitive_includes/cxx20/expected.future
new file mode 100644
index 0000000000000..92bd4e044ecc3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.future
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+future
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.initializer_list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.initializer_list
new file mode 100644
index 0000000000000..8b92a6553ca19
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.initializer_list
@@ -0,0 +1,3 @@
+cstddef
+initializer_list
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip
new file mode 100644
index 0000000000000..39829086f4cb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ios b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ios
new file mode 100644
index 0000000000000..6e7e5b2689767
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ios
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iosfwd b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iosfwd
new file mode 100644
index 0000000000000..ff6e0e3d092b7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iosfwd
@@ -0,0 +1,2 @@
+iosfwd
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream
new file mode 100644
index 0000000000000..580aeaf867341
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iostream
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.istream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.istream
new file mode 100644
index 0000000000000..fd0c4b4ca7361
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.istream
@@ -0,0 +1,49 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iterator b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iterator
new file mode 100644
index 0000000000000..447087a3f6f96
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iterator
@@ -0,0 +1,19 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.latch b/libcxx/test/libcxx/transitive_includes/cxx20/expected.latch
new file mode 100644
index 0000000000000..a7a6bbc912cef
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.latch
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+latch
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.limits b/libcxx/test/libcxx/transitive_includes/cxx20/expected.limits
new file mode 100644
index 0000000000000..49fcbf44c5b21
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.limits
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.list
new file mode 100644
index 0000000000000..b596079c340b0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+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/cxx20/expected.locale b/libcxx/test/libcxx/transitive_includes/cxx20/expected.locale
new file mode 100644
index 0000000000000..29719367689e4
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.locale
@@ -0,0 +1,46 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.map
new file mode 100644
index 0000000000000..c871579ea35ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.map
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx20/expected.memory
new file mode 100644
index 0000000000000..f36910fde696d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.memory
@@ -0,0 +1,26 @@
+atomic
+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/cxx20/expected.mutex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex
new file mode 100644
index 0000000000000..4d101cb290c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.new b/libcxx/test/libcxx/transitive_includes/cxx20/expected.new
new file mode 100644
index 0000000000000..9fd8f6aabd0c9
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.new
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+new
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.numbers b/libcxx/test/libcxx/transitive_includes/cxx20/expected.numbers
new file mode 100644
index 0000000000000..a8b65fc82096b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.numbers
@@ -0,0 +1,6 @@
+concepts
+cstddef
+cstdint
+numbers
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric b/libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric
new file mode 100644
index 0000000000000..558b32457eb4c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.optional b/libcxx/test/libcxx/transitive_includes/cxx20/expected.optional
new file mode 100644
index 0000000000000..993ce23d8009d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.optional
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream
new file mode 100644
index 0000000000000..762d13c26ac3c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx20/expected.queue
new file mode 100644
index 0000000000000..5861852fc5322
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.queue
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+queue
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.random b/libcxx/test/libcxx/transitive_includes/cxx20/expected.random
new file mode 100644
index 0000000000000..96a956ad800a1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.random
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+random
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges
new file mode 100644
index 0000000000000..3dbb13bb9680f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+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/cxx20/expected.ratio b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ratio
new file mode 100644
index 0000000000000..deda945f1b575
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ratio
@@ -0,0 +1,6 @@
+climits
+cstddef
+cstdint
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.regex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.regex
new file mode 100644
index 0000000000000..76df207366621
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.regex
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator
new file mode 100644
index 0000000000000..22dcb319a5e67
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+scoped_allocator
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore b/libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore
new file mode 100644
index 0000000000000..d6802e25aa70d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+semaphore
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.set
new file mode 100644
index 0000000000000..849e87331b725
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex
new file mode 100644
index 0000000000000..fdea61e19bba8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+shared_mutex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.span b/libcxx/test/libcxx/transitive_includes/cxx20/expected.span
new file mode 100644
index 0000000000000..a46c30df88516
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.span
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+span
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream
new file mode 100644
index 0000000000000..1724fbdde39ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx20/expected.stack
new file mode 100644
index 0000000000000..1a7d18cb85f24
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.stack
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx20/expected.stdexcept b/libcxx/test/libcxx/transitive_includes/cxx20/expected.stdexcept
new file mode 100644
index 0000000000000..b8dd684ffcbbf
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.stdexcept
@@ -0,0 +1,8 @@
+cstddef
+cstdint
+cstdlib
+exception
+iosfwd
+stdexcept
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf b/libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf
new file mode 100644
index 0000000000000..a3001ce44a1bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.string b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string
new file mode 100644
index 0000000000000..0dacf739a7859
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string
@@ -0,0 +1,39 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view
new file mode 100644
index 0000000000000..e814351725ef2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view
@@ -0,0 +1,38 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+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/cxx20/expected.strstream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream
new file mode 100644
index 0000000000000..782153b595b63
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+strstream
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error
new file mode 100644
index 0000000000000..4101ee5209a39
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.thread b/libcxx/test/libcxx/transitive_includes/cxx20/expected.thread
new file mode 100644
index 0000000000000..ab8c3c7c85ba2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.thread
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.tuple b/libcxx/test/libcxx/transitive_includes/cxx20/expected.tuple
new file mode 100644
index 0000000000000..69858dc888c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.tuple
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.type_traits b/libcxx/test/libcxx/transitive_includes/cxx20/expected.type_traits
new file mode 100644
index 0000000000000..8448275a1728c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.type_traits
@@ -0,0 +1,4 @@
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.typeindex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.typeindex
new file mode 100644
index 0000000000000..8f1c652535378
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.typeindex
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+type_traits
+typeindex
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.typeinfo b/libcxx/test/libcxx/transitive_includes/cxx20/expected.typeinfo
new file mode 100644
index 0000000000000..609a604805c9b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.typeinfo
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+typeinfo
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map
new file mode 100644
index 0000000000000..2250cf96690a3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map
@@ -0,0 +1,30 @@
+algorithm
+atomic
+bit
+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
+unordered_map
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set
new file mode 100644
index 0000000000000..9352f0b05b721
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.utility b/libcxx/test/libcxx/transitive_includes/cxx20/expected.utility
new file mode 100644
index 0000000000000..799a14724cf41
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.utility
@@ -0,0 +1,11 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray b/libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray
new file mode 100644
index 0000000000000..a069f37119fa8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+valarray
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.variant b/libcxx/test/libcxx/transitive_includes/cxx20/expected.variant
new file mode 100644
index 0000000000000..d94d72974cb84
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.variant
@@ -0,0 +1,17 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx20/expected.vector
new file mode 100644
index 0000000000000..5fb9d7d19cc12
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.vector
@@ -0,0 +1,29 @@
+algorithm
+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
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.version b/libcxx/test/libcxx/transitive_includes/cxx20/expected.version
new file mode 100644
index 0000000000000..088eda41aa61d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.version
@@ -0,0 +1 @@
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
new file mode 100644
index 0000000000000..944a3eeea2d64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
@@ -0,0 +1,28 @@
+algorithm
+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/cxx2b/expected.any b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
new file mode 100644
index 0000000000000..86009188e53e3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
@@ -0,0 +1,27 @@
+any
+atomic
+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/cxx2b/expected.array b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.array
new file mode 100644
index 0000000000000..7145642a8f46e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.array
@@ -0,0 +1,29 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic
new file mode 100644
index 0000000000000..3e9917b3da1a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic
@@ -0,0 +1,14 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
new file mode 100644
index 0000000000000..c2865c8d3ef09
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
@@ -0,0 +1,27 @@
+atomic
+barrier
+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/cxx2b/expected.bit b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit
new file mode 100644
index 0000000000000..4fb5285f8142e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit
@@ -0,0 +1,8 @@
+bit
+cstddef
+cstdint
+cstdlib
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
new file mode 100644
index 0000000000000..3cf3e8dbdfc73
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cassert b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cassert
new file mode 100644
index 0000000000000..69b779ef2f206
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cassert
@@ -0,0 +1 @@
+cassert

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex
new file mode 100644
index 0000000000000..98bf9a8010e40
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cctype b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cctype
new file mode 100644
index 0000000000000..a82e62c088dce
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cctype
@@ -0,0 +1 @@
+cctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cerrno b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cerrno
new file mode 100644
index 0000000000000..24c00a9877c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cerrno
@@ -0,0 +1 @@
+cerrno

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfenv b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfenv
new file mode 100644
index 0000000000000..9980586372456
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfenv
@@ -0,0 +1 @@
+cfenv

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfloat b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfloat
new file mode 100644
index 0000000000000..3bb5aa14cfbfe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cfloat
@@ -0,0 +1 @@
+cfloat

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv
new file mode 100644
index 0000000000000..1ab0e5d37a401
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv
@@ -0,0 +1,13 @@
+cerrno
+charconv
+cmath
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+initializer_list
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.chrono b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.chrono
new file mode 100644
index 0000000000000..fdb624bc1df42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.chrono
@@ -0,0 +1,11 @@
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+ctime
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cinttypes b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cinttypes
new file mode 100644
index 0000000000000..911d5dd27d082
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cinttypes
@@ -0,0 +1,2 @@
+cinttypes
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ciso646 b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ciso646
new file mode 100644
index 0000000000000..6c1d5458c9c9c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ciso646
@@ -0,0 +1 @@
+ciso646

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.climits b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.climits
new file mode 100644
index 0000000000000..271e000221016
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.climits
@@ -0,0 +1 @@
+climits

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.clocale b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.clocale
new file mode 100644
index 0000000000000..0ac42c4b403ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.clocale
@@ -0,0 +1 @@
+clocale

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cmath b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cmath
new file mode 100644
index 0000000000000..7678c0e38802c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cmath
@@ -0,0 +1,6 @@
+cmath
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt
new file mode 100644
index 0000000000000..0931ca137c0bd
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+codecvt
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.compare b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.compare
new file mode 100644
index 0000000000000..df2d92f5d4b6c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.compare
@@ -0,0 +1,7 @@
+cmath
+compare
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex
new file mode 100644
index 0000000000000..64161c1d331fe
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.concepts b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.concepts
new file mode 100644
index 0000000000000..31e9f436e6cd3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.concepts
@@ -0,0 +1,5 @@
+concepts
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
new file mode 100644
index 0000000000000..968007a37cef8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+condition_variable
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine
new file mode 100644
index 0000000000000..8dd332d472542
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine
@@ -0,0 +1,10 @@
+cmath
+compare
+coroutine
+cstddef
+cstdint
+cstring
+iosfwd
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.csetjmp b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.csetjmp
new file mode 100644
index 0000000000000..2f72e67f0324d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.csetjmp
@@ -0,0 +1 @@
+csetjmp

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.csignal b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.csignal
new file mode 100644
index 0000000000000..c17f2a3b99dfb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.csignal
@@ -0,0 +1 @@
+csignal

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdarg b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdarg
new file mode 100644
index 0000000000000..ce71517eeb149
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdarg
@@ -0,0 +1 @@
+cstdarg

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdbool b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdbool
new file mode 100644
index 0000000000000..f3a52bba86c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdbool
@@ -0,0 +1 @@
+cstdbool

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstddef b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstddef
new file mode 100644
index 0000000000000..7b45506ea14b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstddef
@@ -0,0 +1,2 @@
+cstddef
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdint b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdint
new file mode 100644
index 0000000000000..37103a4f4b892
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdint
@@ -0,0 +1 @@
+cstdint

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdio b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdio
new file mode 100644
index 0000000000000..5b70aa3cf8d42
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdio
@@ -0,0 +1 @@
+cstdio

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdlib b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdlib
new file mode 100644
index 0000000000000..b98a7237dde79
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstdlib
@@ -0,0 +1 @@
+cstdlib

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstring b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstring
new file mode 100644
index 0000000000000..0fdbe597c9df1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cstring
@@ -0,0 +1 @@
+cstring

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath
new file mode 100644
index 0000000000000..7467a5ab59520
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath
@@ -0,0 +1,53 @@
+algorithm
+array
+atomic
+bit
+bitset
+ccomplex
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+complex
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctgmath
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctime b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctime
new file mode 100644
index 0000000000000..ee049c40b25b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctime
@@ -0,0 +1 @@
+ctime

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cuchar b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cuchar
new file mode 100644
index 0000000000000..588664ab50b3f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cuchar
@@ -0,0 +1 @@
+cuchar

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwchar b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwchar
new file mode 100644
index 0000000000000..1e6c2091fa4a0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwchar
@@ -0,0 +1,3 @@
+cctype
+cwchar
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwctype b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwctype
new file mode 100644
index 0000000000000..fa1b7f2569941
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.cwctype
@@ -0,0 +1,2 @@
+cctype
+cwctype

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
new file mode 100644
index 0000000000000..c26bdc7479b64
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx2b/expected.exception b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.exception
new file mode 100644
index 0000000000000..c48f9ed9e744d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.exception
@@ -0,0 +1,6 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.execution b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.execution
new file mode 100644
index 0000000000000..b42e7095b5800
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.execution
@@ -0,0 +1,2 @@
+execution
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
new file mode 100644
index 0000000000000..8a5cd7de65d88
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
@@ -0,0 +1,29 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/algorithm
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine
new file mode 100644
index 0000000000000..682f0fa0e7a83
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/coroutine
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque
new file mode 100644
index 0000000000000..bd86d1588beb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+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/cxx2b/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list
new file mode 100644
index 0000000000000..c43fab08b41f3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/forward_list
+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/cxx2b/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional
new file mode 100644
index 0000000000000..87cee2d288827
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/functional
+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/cxx2b/expected.experimental_iterator b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator
new file mode 100644
index 0000000000000..14d31c215ffb7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator
@@ -0,0 +1,20 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+experimental/iterator
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list
new file mode 100644
index 0000000000000..ac800654f5323
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+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/cxx2b/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map
new file mode 100644
index 0000000000000..d132098b01a1b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/map
+experimental/memory_resource
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource
new file mode 100644
index 0000000000000..94d9abd26b6cb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource
@@ -0,0 +1,28 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_propagate_const b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_propagate_const
new file mode 100644
index 0000000000000..a78fa83bc983f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_propagate_const
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+experimental/propagate_const
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex
new file mode 100644
index 0000000000000..8a49aac962c25
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+experimental/memory_resource
+experimental/regex
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set
new file mode 100644
index 0000000000000..f1d2953360dc6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd
new file mode 100644
index 0000000000000..f06f6e9cea012
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/simd
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string
new file mode 100644
index 0000000000000..367a9ed7da4bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+experimental/memory_resource
+experimental/string
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_type_traits b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_type_traits
new file mode 100644
index 0000000000000..c1e83e731fbd2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_type_traits
@@ -0,0 +1,6 @@
+cstddef
+cstdint
+experimental/type_traits
+initializer_list
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map
new file mode 100644
index 0000000000000..16753ae30a7b3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map
@@ -0,0 +1,36 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_map
+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/cxx2b/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set
new file mode 100644
index 0000000000000..1aafa61386b74
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set
@@ -0,0 +1,37 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/unordered_set
+experimental/utility
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility
new file mode 100644
index 0000000000000..a399b3ebb27c6
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility
@@ -0,0 +1,12 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+experimental/utility
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector
new file mode 100644
index 0000000000000..1c569628be18e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector
@@ -0,0 +1,32 @@
+algorithm
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+experimental/memory_resource
+experimental/utility
+experimental/vector
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map
new file mode 100644
index 0000000000000..459536294e0c1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_map
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set
new file mode 100644
index 0000000000000..160335aab3676
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set
@@ -0,0 +1,40 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+ext/hash_set
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem
new file mode 100644
index 0000000000000..22e80bc111922
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem
@@ -0,0 +1,51 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.format b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.format
new file mode 100644
index 0000000000000..08d46d27a9c04
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.format
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+charconv
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+format
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
new file mode 100644
index 0000000000000..33afc74bd420a
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx2b/expected.fstream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream
new file mode 100644
index 0000000000000..7a892e11bfe61
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream
@@ -0,0 +1,52 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+filesystem
+fstream
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional
new file mode 100644
index 0000000000000..7625982373f82
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional
@@ -0,0 +1,33 @@
+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
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.future b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.future
new file mode 100644
index 0000000000000..92bd4e044ecc3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.future
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+future
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.initializer_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.initializer_list
new file mode 100644
index 0000000000000..8b92a6553ca19
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.initializer_list
@@ -0,0 +1,3 @@
+cstddef
+initializer_list
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip
new file mode 100644
index 0000000000000..39829086f4cb1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iomanip
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios
new file mode 100644
index 0000000000000..6e7e5b2689767
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios
@@ -0,0 +1,43 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iosfwd b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iosfwd
new file mode 100644
index 0000000000000..ff6e0e3d092b7
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iosfwd
@@ -0,0 +1,2 @@
+iosfwd
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream
new file mode 100644
index 0000000000000..580aeaf867341
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iostream
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream
new file mode 100644
index 0000000000000..fd0c4b4ca7361
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream
@@ -0,0 +1,49 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator
new file mode 100644
index 0000000000000..447087a3f6f96
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator
@@ -0,0 +1,19 @@
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+iterator
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch
new file mode 100644
index 0000000000000..a7a6bbc912cef
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+latch
+limits
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.limits b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.limits
new file mode 100644
index 0000000000000..49fcbf44c5b21
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.limits
@@ -0,0 +1,5 @@
+cstddef
+cstdint
+limits
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
new file mode 100644
index 0000000000000..b596079c340b0
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+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/cxx2b/expected.locale b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale
new file mode 100644
index 0000000000000..29719367689e4
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale
@@ -0,0 +1,46 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.map
new file mode 100644
index 0000000000000..c871579ea35ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.map
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+map
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
new file mode 100644
index 0000000000000..f36910fde696d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
@@ -0,0 +1,26 @@
+atomic
+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/cxx2b/expected.mutex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex
new file mode 100644
index 0000000000000..4d101cb290c16
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.new b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.new
new file mode 100644
index 0000000000000..9fd8f6aabd0c9
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.new
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+new
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numbers b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numbers
new file mode 100644
index 0000000000000..a8b65fc82096b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numbers
@@ -0,0 +1,6 @@
+concepts
+cstddef
+cstdint
+numbers
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric
new file mode 100644
index 0000000000000..558b32457eb4c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional
new file mode 100644
index 0000000000000..993ce23d8009d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream
new file mode 100644
index 0000000000000..762d13c26ac3c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream
@@ -0,0 +1,48 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
new file mode 100644
index 0000000000000..5861852fc5322
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+queue
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
new file mode 100644
index 0000000000000..96a956ad800a1
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+numeric
+optional
+random
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges
new file mode 100644
index 0000000000000..3dbb13bb9680f
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+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/cxx2b/expected.ratio b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ratio
new file mode 100644
index 0000000000000..deda945f1b575
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ratio
@@ -0,0 +1,6 @@
+climits
+cstddef
+cstdint
+ratio
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex
new file mode 100644
index 0000000000000..76df207366621
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+deque
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+regex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator
new file mode 100644
index 0000000000000..22dcb319a5e67
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator
@@ -0,0 +1,27 @@
+atomic
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+ratio
+scoped_allocator
+stdexcept
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore
new file mode 100644
index 0000000000000..d6802e25aa70d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore
@@ -0,0 +1,15 @@
+atomic
+chrono
+climits
+cmath
+compare
+cstddef
+cstdint
+cstring
+ctime
+iosfwd
+limits
+ratio
+semaphore
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
new file mode 100644
index 0000000000000..849e87331b725
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+set
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
new file mode 100644
index 0000000000000..fdea61e19bba8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+shared_mutex
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.span b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.span
new file mode 100644
index 0000000000000..a46c30df88516
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.span
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+span
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream
new file mode 100644
index 0000000000000..1724fbdde39ed
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+sstream
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
new file mode 100644
index 0000000000000..1a7d18cb85f24
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
@@ -0,0 +1,35 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+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/cxx2b/expected.stdexcept b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stdexcept
new file mode 100644
index 0000000000000..b8dd684ffcbbf
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stdexcept
@@ -0,0 +1,8 @@
+cstddef
+cstdint
+cstdlib
+exception
+iosfwd
+stdexcept
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf
new file mode 100644
index 0000000000000..a3001ce44a1bb
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf
@@ -0,0 +1,44 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+iterator
+limits
+memory
+mutex
+new
+optional
+ratio
+stdexcept
+streambuf
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
new file mode 100644
index 0000000000000..0dacf739a7859
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
@@ -0,0 +1,39 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view
new file mode 100644
index 0000000000000..e814351725ef2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view
@@ -0,0 +1,38 @@
+algorithm
+array
+atomic
+bit
+cctype
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+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/cxx2b/expected.strstream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream
new file mode 100644
index 0000000000000..782153b595b63
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream
@@ -0,0 +1,50 @@
+algorithm
+array
+atomic
+bit
+bitset
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstdarg
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+ios
+iosfwd
+istream
+iterator
+limits
+locale
+memory
+mutex
+new
+optional
+ostream
+ratio
+stdexcept
+streambuf
+string
+string_view
+strstream
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
new file mode 100644
index 0000000000000..4101ee5209a39
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
@@ -0,0 +1,41 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread
new file mode 100644
index 0000000000000..ab8c3c7c85ba2
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread
@@ -0,0 +1,42 @@
+algorithm
+array
+atomic
+bit
+cctype
+cerrno
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdio
+cstdlib
+cstring
+ctime
+cwchar
+cwctype
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+string
+string_view
+system_error
+thread
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple
new file mode 100644
index 0000000000000..69858dc888c3b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.type_traits b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.type_traits
new file mode 100644
index 0000000000000..8448275a1728c
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.type_traits
@@ -0,0 +1,4 @@
+cstddef
+cstdint
+type_traits
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex
new file mode 100644
index 0000000000000..8f1c652535378
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex
@@ -0,0 +1,15 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+exception
+initializer_list
+iosfwd
+limits
+new
+type_traits
+typeindex
+typeinfo
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeinfo b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeinfo
new file mode 100644
index 0000000000000..609a604805c9b
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeinfo
@@ -0,0 +1,7 @@
+cstddef
+cstdint
+cstdlib
+exception
+type_traits
+typeinfo
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map
new file mode 100644
index 0000000000000..2250cf96690a3
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map
@@ -0,0 +1,30 @@
+algorithm
+atomic
+bit
+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
+unordered_map
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
new file mode 100644
index 0000000000000..9352f0b05b721
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+unordered_set
+utility
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility
new file mode 100644
index 0000000000000..799a14724cf41
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility
@@ -0,0 +1,11 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+initializer_list
+iosfwd
+limits
+type_traits
+utility
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray
new file mode 100644
index 0000000000000..a069f37119fa8
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray
@@ -0,0 +1,34 @@
+algorithm
+array
+atomic
+bit
+chrono
+climits
+cmath
+compare
+concepts
+cstddef
+cstdint
+cstdlib
+cstring
+ctime
+exception
+functional
+initializer_list
+iosfwd
+iterator
+limits
+memory
+new
+optional
+ratio
+stdexcept
+tuple
+type_traits
+typeinfo
+unordered_map
+utility
+valarray
+variant
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant
new file mode 100644
index 0000000000000..d94d72974cb84
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant
@@ -0,0 +1,17 @@
+cmath
+compare
+cstddef
+cstdint
+cstdlib
+cstring
+exception
+initializer_list
+iosfwd
+limits
+new
+tuple
+type_traits
+typeinfo
+utility
+variant
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
new file mode 100644
index 0000000000000..5fb9d7d19cc12
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
@@ -0,0 +1,29 @@
+algorithm
+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
+vector
+version

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.version b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.version
new file mode 100644
index 0000000000000..088eda41aa61d
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.version
@@ -0,0 +1 @@
+version

diff  --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py
index 8dad05b974cd3..e33aac575ba50 100644
--- a/libcxx/utils/libcxx/test/params.py
+++ b/libcxx/utils/libcxx/test/params.py
@@ -81,6 +81,7 @@ def getStdFlag(cfg, std):
             default=lambda cfg: next(s for s in reversed(_allStandards) if getStdFlag(cfg, s)),
             actions=lambda std: [
               AddFeature(std),
+              AddSubstitution('%{cxx_std}', re.sub('\+','x', std)),
               AddCompileFlag(lambda cfg: getStdFlag(cfg, std)),
             ]),
 


        


More information about the libcxx-commits mailing list