Skip to content

[libc++][C++03] Remove tests from libcxx-03 which aren't run in C++03 mode #144094

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 1 commit into
base: users/philnik777/cxx03_split_libcxx_tests
Choose a base branch
from

Conversation

philnik777
Copy link
Contributor

This removes headers from libcxx-03 which are never run because they don't run in C++03 mode. This is a follow-up to #144093.

This is part of https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.

@philnik777 philnik777 force-pushed the users/philnik777/cxx03_tests_remove_non_cxx03_tests branch 2 times, most recently from 9628b78 to ace1738 Compare June 13, 2025 15:37
@philnik777 philnik777 force-pushed the users/philnik777/cxx03_tests_remove_non_cxx03_tests branch from ace1738 to fe5571e Compare June 13, 2025 15:38
@philnik777 philnik777 marked this pull request as ready for review June 17, 2025 05:21
@philnik777 philnik777 requested a review from a team as a code owner June 17, 2025 05:21
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Jun 17, 2025
@llvmbot
Copy link
Member

llvmbot commented Jun 17, 2025

@llvm/pr-subscribers-libcxx

Author: Nikolas Klauser (philnik777)

Changes

This removes headers from libcxx-03 which are never run because they don't run in C++03 mode. This is a follow-up to #144093.

This is part of https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.


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

605 Files Affected:

  • (removed) libcxx/test/libcxx-03/Wnon_modular_include_in_module.compile.pass.cpp (-21)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.depr_in_cxx14.verify.cpp (-43)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_nontrivial.pass.cpp (-331)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_trivial.pass.cpp (-334)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_unwrap_reverse.pass.cpp (-141)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.sorting/alg.heap.operations/make.heap/complexity.pass.cpp (-75)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.sorting/assert.min.max.pass.cpp (-30)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.sorting/assert.sort.invalid_comparator/assert.sort.invalid_comparator.oob.pass.cpp (-72)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.sorting/assert.sort.invalid_comparator/assert.sort.invalid_comparator.pass.cpp (-195)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.sorting/assert.sort.invalid_comparator/bad_comparator_values.h (-3565)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.sorting/assert.sort.invalid_comparator/invalid_comparator_utilities.h (-85)
  • (removed) libcxx/test/libcxx-03/algorithms/alg.sorting/pstl.is_partitioned.pass.cpp (-31)
  • (removed) libcxx/test/libcxx-03/algorithms/callable-requirements-rvalue.compile.pass.cpp (-46)
  • (removed) libcxx/test/libcxx-03/algorithms/callable-requirements.verify.cpp (-118)
  • (removed) libcxx/test/libcxx-03/algorithms/cpp17_iterator_concepts.verify.cpp (-425)
  • (removed) libcxx/test/libcxx-03/algorithms/debug_less.inconsistent.pass.cpp (-52)
  • (removed) libcxx/test/libcxx-03/algorithms/debug_less.pass.cpp (-260)
  • (removed) libcxx/test/libcxx-03/algorithms/debug_three_way_comp.inconsistent.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/algorithms/lifetimebound.verify.cpp (-81)
  • (removed) libcxx/test/libcxx-03/algorithms/no_specializations.verify.cpp (-28)
  • (removed) libcxx/test/libcxx-03/algorithms/nth_element_stability.pass.cpp (-101)
  • (removed) libcxx/test/libcxx-03/algorithms/partial_sort_stability.pass.cpp (-102)
  • (removed) libcxx/test/libcxx-03/algorithms/pstl.iterator-requirements.verify.cpp (-193)
  • (removed) libcxx/test/libcxx-03/algorithms/ranges_robust_against_copying_comparators.pass.cpp (-264)
  • (removed) libcxx/test/libcxx-03/algorithms/ranges_robust_against_copying_projections.pass.cpp (-278)
  • (removed) libcxx/test/libcxx-03/algorithms/sort_stability.pass.cpp (-100)
  • (removed) libcxx/test/libcxx-03/algorithms/specialized.algorithms/special.mem.concepts/nothrow_forward_iterator.compile.pass.cpp (-27)
  • (removed) libcxx/test/libcxx-03/algorithms/specialized.algorithms/special.mem.concepts/nothrow_forward_range.compile.pass.cpp (-29)
  • (removed) libcxx/test/libcxx-03/algorithms/specialized.algorithms/special.mem.concepts/nothrow_input_iterator.compile.pass.cpp (-30)
  • (removed) libcxx/test/libcxx-03/algorithms/specialized.algorithms/special.mem.concepts/nothrow_input_range.compile.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/algorithms/specialized.algorithms/special.mem.concepts/nothrow_sentinel_for.compile.pass.cpp (-35)
  • (removed) libcxx/test/libcxx-03/algorithms/vectorization.compile.pass.cpp (-34)
  • (removed) libcxx/test/libcxx-03/assertions/modes/debug.pass.cpp (-26)
  • (removed) libcxx/test/libcxx-03/assertions/modes/extensive.pass.cpp (-26)
  • (removed) libcxx/test/libcxx-03/assertions/modes/fast.pass.cpp (-26)
  • (removed) libcxx/test/libcxx-03/assertions/modes/override_with_debug_mode.pass.cpp (-27)
  • (removed) libcxx/test/libcxx-03/assertions/modes/override_with_extensive_mode.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/assertions/modes/override_with_fast_mode.pass.cpp (-31)
  • (removed) libcxx/test/libcxx-03/assertions/modes/override_with_unchecked_mode.pass.cpp (-24)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.align/align.pass.cpp (-113)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/assert.compare_exchange_strong.pass.cpp (-59)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/assert.compare_exchange_weak.pass.cpp (-59)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/assert.ctor.pass.cpp (-41)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/assert.load.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/assert.store.pass.cpp (-64)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/assert.wait.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/compare_exchange_strong.verify.cpp (-39)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/compare_exchange_weak.verify.cpp (-39)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/load.verify.cpp (-34)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/store.verify.cpp (-36)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.ref/wait.verify.cpp (-36)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.syn/compatible_with_stdatomic.compile.pass.cpp (-23)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.syn/wait.issue_85107.pass.cpp (-54)
  • (removed) libcxx/test/libcxx-03/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp (-51)
  • (removed) libcxx/test/libcxx-03/atomics/bit-int.verify.cpp (-22)
  • (removed) libcxx/test/libcxx-03/concepts/concepts.arithmetic/__libcpp_integer.compile.pass.cpp (-63)
  • (removed) libcxx/test/libcxx-03/concepts/concepts.arithmetic/__libcpp_signed_integer.compile.pass.cpp (-63)
  • (removed) libcxx/test/libcxx-03/concepts/concepts.arithmetic/__libcpp_unsigned_integer.compile.pass.cpp (-63)
  • (removed) libcxx/test/libcxx-03/containers/associative/non_const_comparator.incomplete.verify.cpp (-56)
  • (removed) libcxx/test/libcxx-03/containers/associative/non_const_comparator.verify.cpp (-48)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.map/assert.input_range.pass.cpp (-66)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.map/assert.sorted_unique.pass.cpp (-225)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.map/scary.compile.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.multimap/assert.input_range.pass.cpp (-66)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.multimap/assert.sorted_equivalent.pass.cpp (-225)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.multiset/assert.sorted_unique.pass.cpp (-131)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.multiset/insert.temporary.pass.cpp (-48)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.multiset/insert_range.pass.cpp (-46)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.multiset/iterator.compile.pass.cpp (-42)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.set/assert.sorted_unique.pass.cpp (-226)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.set/insert.temporary.pass.cpp (-48)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.set/insert_range.pass.cpp (-46)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.set/iterator.compile.pass.cpp (-42)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat.set/scary.compile.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/container.adaptors/flat_helpers.h (-48)
  • (removed) libcxx/test/libcxx-03/containers/sequences/deque/asan_caterpillar.pass.cpp (-53)
  • (removed) libcxx/test/libcxx-03/containers/sequences/deque/asan_turning_off.pass.cpp (-77)
  • (removed) libcxx/test/libcxx-03/containers/sequences/deque/assert.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/containers/sequences/deque/assert.pop_back.empty.pass.cpp (-29)
  • (removed) libcxx/test/libcxx-03/containers/sequences/deque/spare_block_handling.pass.cpp (-288)
  • (removed) libcxx/test/libcxx-03/containers/sequences/forwardlist/assert.pass.cpp (-47)
  • (removed) libcxx/test/libcxx-03/containers/sequences/forwardlist/bool-conversion.pass.cpp (-37)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.cons/debug.copy.pass.cpp (-30)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/assert.erase_iter.end.pass.cpp (-29)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/assert.pop_back.empty.pass.cpp (-35)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/bool-conversion.pass.cpp (-37)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/debug.emplace.pass.cpp (-34)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/debug.erase.iter.pass.cpp (-28)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/debug.erase.iter_iter.pass.cpp (-57)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/debug.insert.iter_iter_iter.pass.cpp (-29)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/debug.insert.iter_rvalue.pass.cpp (-27)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/debug.insert.iter_size_value.pass.cpp (-27)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.modifiers/debug.insert.iter_value.pass.cpp (-28)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.ops/debug.splice.pos_list.pass.cpp (-26)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.ops/debug.splice.pos_list_iter.pass.cpp (-28)
  • (removed) libcxx/test/libcxx-03/containers/sequences/list/list.ops/debug.splice.pos_list_iter_iter.pass.cpp (-28)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector.bool/assert.pass.cpp (-63)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector.bool/trivial_for_purposes_of_call.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/asan_turning_off.pass.cpp (-77)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.back.empty.pass.cpp (-43)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.cback.empty.pass.cpp (-39)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.cfront.empty.pass.cpp (-39)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.cindex.oob.pass.cpp (-42)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.front.empty.pass.cpp (-44)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.index.oob.pass.cpp (-42)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.iterator.add.pass.cpp (-49)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.iterator.decrement.pass.cpp (-44)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.iterator.dereference.pass.cpp (-42)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.iterator.increment.pass.cpp (-47)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.iterator.index.pass.cpp (-51)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/assert.pop_back.empty.pass.cpp (-29)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/debug.iterator.compare.pass.cpp (-39)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/debug.iterator.subtract.pass.cpp (-39)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/exception_safety_exceptions_disabled.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/fill_to_capacity.h (-24)
  • (removed) libcxx/test/libcxx-03/containers/sequences/vector/robust_against_adl.pass.cpp (-54)
  • (removed) libcxx/test/libcxx-03/containers/strings/basic.string/asan.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/containers/strings/basic.string/asan_deque_integration.pass.cpp (-182)
  • (removed) libcxx/test/libcxx-03/containers/strings/basic.string/asan_short.pass.cpp (-56)
  • (removed) libcxx/test/libcxx-03/containers/strings/basic.string/asan_turning_off.pass.cpp (-102)
  • (removed) libcxx/test/libcxx-03/containers/strings/basic.string/asan_vector_integration.pass.cpp (-182)
  • (removed) libcxx/test/libcxx-03/containers/unord/next_pow2.pass.cpp (-78)
  • (removed) libcxx/test/libcxx-03/containers/unord/non_const_comparator.incomplete.verify.cpp (-58)
  • (removed) libcxx/test/libcxx-03/containers/unord/non_const_comparator.verify.cpp (-58)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/assert.bucket.pass.cpp (-29)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/assert.bucket_size.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/assert.iterator.dereference.pass.cpp (-52)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/assert.iterator.increment.pass.cpp (-59)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/assert.local_iterator.dereference.pass.cpp (-50)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/assert.local_iterator.increment.pass.cpp (-66)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/assert.max_load_factor.pass.cpp (-34)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/at.abort.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/at.const.abort.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/debug.insert.hint_const_lvalue.pass.cpp (-41)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/debug.insert.hint_rvalue.pass.cpp (-35)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/debug.swap.pass.cpp (-38)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/unord.map.modifiers/debug.erase.iter.pass.cpp (-43)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.map/unord.map.modifiers/debug.erase.iter_iter.pass.cpp (-64)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/assert.bucket.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/assert.bucket_size.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/assert.iterator.dereference.pass.cpp (-52)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/assert.iterator.increment.pass.cpp (-59)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/assert.local_iterator.dereference.pass.cpp (-50)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/assert.local_iterator.increment.pass.cpp (-67)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/assert.max_load_factor.pass.cpp (-34)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/debug.insert.hint_const_lvalue.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/debug.insert.hint_rvalue.pass.cpp (-34)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/debug.swap.pass.cpp (-38)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/unord.multimap.modifiers/debug.erase.iter.pass.cpp (-43)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multimap/unord.multimap.modifiers/debug.erase.iter_iter.pass.cpp (-64)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/assert.bucket.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/assert.bucket_size.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/assert.iterator.dereference.pass.cpp (-46)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/assert.iterator.increment.pass.cpp (-58)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/assert.local_iterator.dereference.pass.cpp (-48)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/assert.local_iterator.increment.pass.cpp (-64)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/assert.max_load_factor.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/debug.erase.iter.pass.cpp (-41)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/debug.erase.iter_iter.pass.cpp (-60)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/debug.insert.hint_const_lvalue.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.multiset/debug.swap.pass.cpp (-37)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/assert.bucket.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/assert.bucket_size.pass.cpp (-32)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/assert.iterator.dereference.pass.cpp (-46)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/assert.iterator.increment.pass.cpp (-58)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/assert.local_iterator.dereference.pass.cpp (-48)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/assert.local_iterator.increment.pass.cpp (-64)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/assert.max_load_factor.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/debug.erase.iter.pass.cpp (-41)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/debug.erase.iter_iter.pass.cpp (-60)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/debug.insert.hint_const_lvalue.pass.cpp (-33)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/debug.swap.pass.cpp (-37)
  • (removed) libcxx/test/libcxx-03/containers/unord/unord.set/missing_hash_specialization.verify.cpp (-70)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/aligned_accessor/byte_alignment.verify.cpp (-29)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/aligned_accessor/element_type.verify.cpp (-32)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/extents/assert.conversion.pass.cpp (-57)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/extents/assert.ctor_from_array.pass.cpp (-60)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/extents/assert.ctor_from_integral.pass.cpp (-62)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/extents/assert.ctor_from_span.pass.cpp (-63)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/extents/assert.obs.pass.cpp (-65)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_left/assert.conversion.pass.cpp (-62)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_left/assert.ctor.extents.pass.cpp (-38)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_left/assert.ctor.layout_right.pass.cpp (-59)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_left/assert.ctor.layout_stride.pass.cpp (-83)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_left/assert.index_operator.pass.cpp (-84)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_left/assert.stride.pass.cpp (-41)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_right/assert.conversion.pass.cpp (-62)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_right/assert.ctor.extents.pass.cpp (-40)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_right/assert.ctor.layout_left.pass.cpp (-58)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_right/assert.ctor.layout_stride.pass.cpp (-83)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_right/assert.index_operator.pass.cpp (-84)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_right/assert.stride.pass.cpp (-41)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_stride/assert.conversion.pass.cpp (-111)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_stride/assert.ctor.extents_array.non_unique.pass.cpp (-67)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_stride/assert.ctor.extents_array.pass.cpp (-74)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_stride/assert.ctor.extents_span.non_unique.pass.cpp (-70)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_stride/assert.ctor.extents_span.pass.cpp (-81)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_stride/assert.index_operator.pass.cpp (-88)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/layout_stride/assert.stride.pass.cpp (-36)
  • (removed) libcxx/test/libcxx-03/containers/views/mdspan/mdspan/assert.conversion.pass.cpp (-66)
diff --git a/libcxx/test/libcxx-03/Wnon_modular_include_in_module.compile.pass.cpp b/libcxx/test/libcxx-03/Wnon_modular_include_in_module.compile.pass.cpp
deleted file mode 100644
index aa7a6d98d7d68..0000000000000
--- a/libcxx/test/libcxx-03/Wnon_modular_include_in_module.compile.pass.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// REQUIRES: target={{.*}}-apple-{{.*}}
-// UNSUPPORTED: c++03
-
-// This test ensures that libc++ supports being compiled with modules enabled and with
-// -Wnon-modular-include-in-module. This effectively checks that we don't include any
-// non-modular header from the library.
-//
-// Since most underlying platforms are not modularized properly, this test currently only
-// works on Apple platforms.
-
-// ADDITIONAL_COMPILE_FLAGS: -Wnon-modular-include-in-module -Wsystem-headers-in-module=std -fmodules -fcxx-modules
-
-#include <vector>
diff --git a/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.depr_in_cxx14.verify.cpp b/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.depr_in_cxx14.verify.cpp
deleted file mode 100644
index 057f126a93cfe..0000000000000
--- a/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.depr_in_cxx14.verify.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// <algorithm>
-
-// template <class RandomAccessIterator>
-//     void
-//     random_shuffle(RandomAccessIterator first, RandomAccessIterator last);
-//
-// template <class RandomAccessIterator, class RandomNumberGenerator>
-//     void
-//     random_shuffle(RandomAccessIterator first, RandomAccessIterator last,
-//                    RandomNumberGenerator& rand);
-
-// UNSUPPORTED: c++03, c++11
-
-// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE
-
-#include <algorithm>
-#include <cstddef>
-
-#include "test_macros.h"
-
-struct gen
-{
-    std::ptrdiff_t operator()(std::ptrdiff_t n)
-    {
-        return n-1;
-    }
-};
-
-
-void f() {
-    int v[1] = {1};
-    std::random_shuffle(&v[0], &v[1]); // expected-warning {{'random_shuffle<int *>' is deprecated}}
-    gen r;
-    std::random_shuffle(&v[0], &v[1], r); // expected-warning {{'random_shuffle<int *, gen &>' is deprecated}}
-}
diff --git a/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_nontrivial.pass.cpp b/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_nontrivial.pass.cpp
deleted file mode 100644
index 0c5ae84d97700..0000000000000
--- a/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_nontrivial.pass.cpp
+++ /dev/null
@@ -1,331 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11, c++14, c++17
-// In the modules build, adding another overload of `memmove` doesn't work.
-// UNSUPPORTED: clang-modules-build
-// GCC complains about "ambiguating" `__builtin_memmove`.
-// UNSUPPORTED: gcc
-
-// <algorithm>
-
-#include <cassert>
-#include <cstddef>
-
-// These tests check that `std::copy` and `std::move` (including their variations like `copy_n`) don't forward to
-// `std::memmove` when doing so would be observable.
-
-// This template is a better match than the actual `builtin_memmove` (it can match the pointer type exactly, without an
-// implicit conversion to `void*`), so it should hijack the call inside `std::copy` and similar algorithms if it's made.
-template <class Dst, class Src>
-constexpr void* __builtin_memmove(Dst*, Src*, std::size_t) {
-  assert(false);
-  return nullptr;
-}
-
-#include <algorithm>
-#include <cassert>
-#include <cstdint>
-#include <iterator>
-#include <ranges>
-#include <type_traits>
-
-#include "test_iterators.h"
-#include "test_macros.h"
-
-// S1 and S2 are simple structs that are convertible to each other and have the same bit representation.
-struct S1 {
-  int x;
-
-  constexpr S1() = default;
-  constexpr S1(int set_x) : x(set_x) {}
-
-  friend constexpr bool operator==(const S1& lhs, const S1& rhs) { return lhs.x == rhs.x; }
-};
-
-struct S2 {
-  int x;
-
-  constexpr S2() = default;
-  constexpr S2(int set_x) : x(set_x) {}
-  constexpr S2(S1 from) : x(from.x) {}
-
-  friend constexpr bool operator==(const S1& lhs, const S2& rhs) { return lhs.x == rhs.x; }
-  friend constexpr bool operator==(const S2& lhs, const S2& rhs) { return lhs.x == rhs.x; }
-};
-
-// U1 and U2 are simple unions that are convertible to each other and have the same bit representation.
-union U1 {
-  int x;
-
-  constexpr U1() = default;
-  constexpr U1(int set_x) : x(set_x) {}
-
-  friend constexpr bool operator==(const U1& lhs, const U1& rhs) { return lhs.x == rhs.x; }
-};
-
-union U2 {
-  int x;
-
-  constexpr U2() = default;
-  constexpr U2(int set_x) : x(set_x) {}
-  constexpr U2(U1 from) : x(from.x) {}
-
-  friend constexpr bool operator==(const U1& lhs, const U2& rhs) { return lhs.x == rhs.x; }
-  friend constexpr bool operator==(const U2& lhs, const U2& rhs) { return lhs.x == rhs.x; }
-};
-
-struct NonTrivialMoveAssignment {
-  int i;
-
-  constexpr NonTrivialMoveAssignment() = default;
-  constexpr NonTrivialMoveAssignment(int set_i) : i(set_i) {}
-
-  constexpr NonTrivialMoveAssignment(NonTrivialMoveAssignment&& rhs) = default;
-  constexpr NonTrivialMoveAssignment& operator=(NonTrivialMoveAssignment&& rhs) noexcept {
-    i = rhs.i;
-    return *this;
-  }
-
-  constexpr friend bool operator==(const NonTrivialMoveAssignment&, const NonTrivialMoveAssignment&) = default;
-};
-
-static_assert(!std::is_trivially_move_assignable_v<NonTrivialMoveAssignment>);
-static_assert(!std::is_trivially_assignable<NonTrivialMoveAssignment&, NonTrivialMoveAssignment&>::value);
-
-struct NonTrivialMoveCtr {
-  int i;
-
-  constexpr NonTrivialMoveCtr() = default;
-  constexpr NonTrivialMoveCtr(int set_i) : i(set_i) {}
-
-  constexpr NonTrivialMoveCtr(NonTrivialMoveCtr&& rhs) noexcept : i(rhs.i) {}
-  constexpr NonTrivialMoveCtr& operator=(NonTrivialMoveCtr&& rhs) = default;
-
-  constexpr friend bool operator==(const NonTrivialMoveCtr&, const NonTrivialMoveCtr&) = default;
-};
-
-static_assert(std::is_trivially_move_assignable_v<NonTrivialMoveCtr>);
-static_assert(!std::is_trivially_copyable_v<NonTrivialMoveCtr>);
-
-struct NonTrivialCopyAssignment {
-  int i;
-
-  constexpr NonTrivialCopyAssignment() = default;
-  constexpr NonTrivialCopyAssignment(int set_i) : i(set_i) {}
-
-  constexpr NonTrivialCopyAssignment(const NonTrivialCopyAssignment& rhs) = default;
-  constexpr NonTrivialCopyAssignment& operator=(const NonTrivialCopyAssignment& rhs) {
-    i = rhs.i;
-    return *this;
-  }
-
-  constexpr friend bool operator==(const NonTrivialCopyAssignment&, const NonTrivialCopyAssignment&) = default;
-};
-
-static_assert(!std::is_trivially_copy_assignable_v<NonTrivialCopyAssignment>);
-
-struct NonTrivialCopyCtr {
-  int i;
-
-  constexpr NonTrivialCopyCtr() = default;
-  constexpr NonTrivialCopyCtr(int set_i) : i(set_i) {}
-
-  constexpr NonTrivialCopyCtr(const NonTrivialCopyCtr& rhs) : i(rhs.i) {}
-  constexpr NonTrivialCopyCtr& operator=(const NonTrivialCopyCtr& rhs) = default;
-
-  constexpr friend bool operator==(const NonTrivialCopyCtr&, const NonTrivialCopyCtr&) = default;
-};
-
-static_assert(std::is_trivially_copy_assignable_v<NonTrivialCopyCtr>);
-static_assert(!std::is_trivially_copyable_v<NonTrivialCopyCtr>);
-
-template <class T>
-constexpr T make(int from) {
-  return T(from);
-}
-
-template <typename PtrT, typename T = std::remove_pointer_t<PtrT>>
-static T make_internal_array[5] = {T(), T(), T(), T(), T()};
-
-template <class T>
-requires std::is_pointer_v<T>
-constexpr T make(int i) {
-  if constexpr (!std::same_as<std::remove_pointer_t<T>, void>) {
-    return make_internal_array<T> + i;
-  } else {
-    return make_internal_array<int> + i;
-  }
-}
-
-template <class InIter, template <class> class SentWrapper, class OutIter, class Func>
-constexpr void test_one(Func func) {
-  using From = typename std::iterator_traits<InIter>::value_type;
-  using To = typename std::iterator_traits<OutIter>::value_type;
-
-  {
-    const std::size_t N = 5;
-
-    From input[N] = {make<From>(0), make<From>(1), make<From>(2), make<From>(3), make<From>(4)};
-    To output[N];
-
-    auto in     = InIter(input);
-    auto in_end = InIter(input + N);
-    auto sent   = SentWrapper<decltype(in_end)>(in_end);
-    auto out    = OutIter(output);
-
-    func(in, sent, out, N);
-    if constexpr (!std::same_as<To, bool>) {
-      assert(std::equal(input, input + N, output));
-    } else {
-      bool expected[N] = {false, true, true, true, true};
-      assert(std::equal(output, output + N, expected));
-    }
-  }
-
-  {
-    const std::size_t N = 0;
-
-    From input[1]  = {make<From>(1)};
-    To output[1] = {make<To>(2)};
-
-    auto in     = InIter(input);
-    auto in_end = InIter(input + N);
-    auto sent   = SentWrapper<decltype(in_end)>(in_end);
-    auto out    = OutIter(output);
-
-    func(in, sent, out, N);
-    assert(output[0] == make<To>(2));
-  }
-}
-
-template <class InIter, template <class> class SentWrapper, class OutIter>
-constexpr void test_copy() {
-  // Classic.
-  if constexpr (std::same_as<InIter, SentWrapper<InIter>>) {
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t) {
-      std::copy(first, last, out);
-    });
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t n) {
-      std::copy_backward(first, last, out + n);
-    });
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto, auto out, std::size_t n) {
-      std::copy_n(first, n, out);
-    });
-  }
-
-  // Ranges.
-  test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t) {
-    std::ranges::copy(first, last, out);
-  });
-  test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t n) {
-    std::ranges::copy_backward(first, last, out + n);
-  });
-  test_one<InIter, SentWrapper, OutIter>([](auto first, auto, auto out, std::size_t n) {
-    std::ranges::copy_n(first, n, out);
-  });
-}
-
-template <class InIter, template <class> class SentWrapper, class OutIter>
-constexpr void test_move() {
-  if constexpr (std::same_as<InIter, SentWrapper<InIter>>) {
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t) {
-      std::move(first, last, out);
-    });
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t n) {
-      std::move_backward(first, last, out + n);
-    });
-  }
-
-  // Ranges.
-  test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t) {
-    std::ranges::move(first, last, out);
-  });
-  test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t n) {
-    std::ranges::move_backward(first, last, out + n);
-  });
-}
-
-template <class From, class To = From>
-constexpr void test_copy_with_type() {
-  using FromIter = contiguous_iterator<From*>;
-  using ToIter = contiguous_iterator<To*>;
-
-  test_copy<FromIter, std::type_identity_t, ToIter>();
-  test_copy<FromIter, sized_sentinel, ToIter>();
-  test_copy<FromIter, std::type_identity_t, To*>();
-  test_copy<From*, std::type_identity_t, To*>();
-  test_copy<From*, std::type_identity_t, ToIter>();
-}
-
-template <class From, class To = From>
-constexpr void test_move_with_type() {
-  using FromIter = contiguous_iterator<From*>;
-  using ToIter = contiguous_iterator<To*>;
-
-  test_move<FromIter, std::type_identity_t, ToIter>();
-  test_move<FromIter, sized_sentinel, ToIter>();
-  test_move<FromIter, std::type_identity_t, To*>();
-  test_move<From*, std::type_identity_t, To*>();
-  test_move<From*, std::type_identity_t, ToIter>();
-}
-
-template <class From, class To>
-constexpr void test_copy_and_move() {
-  test_copy_with_type<From, To>();
-  test_move_with_type<From, To>();
-}
-
-template <class From, class To>
-constexpr void test_both_directions() {
-  test_copy_and_move<From, To>();
-  if (!std::same_as<From, To>) {
-    test_copy_and_move<To, From>();
-  }
-}
-
-constexpr bool test() {
-  test_copy_with_type<NonTrivialCopyAssignment>();
-  test_move_with_type<NonTrivialMoveAssignment>();
-
-  // Copying from a smaller type into a larger type and vice versa.
-  test_both_directions<char, int>();
-  test_both_directions<std::int32_t, std::int64_t>();
-
-  // Copying between types with different representations.
-  test_both_directions<int, float>();
-  // Copying from `bool` to `char` will invoke the optimization, so only check one direction.
-  test_copy_and_move<char, bool>();
-
-  // Copying between different structs with the same representation (there is no way to guarantee the representation is
-  // the same).
-  test_copy_and_move<S1, S2>();
-  // Copying between different unions with the same representation.
-  test_copy_and_move<U1, U2>();
-
-  // Copying from a regular pointer to a void pointer (these are not considered trivially copyable).
-  test_copy_and_move<int*, void*>();
-  // Copying from a non-const pointer to a const pointer (these are not considered trivially copyable).
-  test_copy_and_move<int*, const int*>();
-
-  // `memmove` does not support volatile pointers.
-  // (See also https://github.com/llvm/llvm-project/issues/28901).
-  if (!std::is_constant_evaluated()) {
-    test_both_directions<volatile int, int>();
-    test_both_directions<volatile int, volatile int>();
-  }
-
-  return true;
-}
-
-int main(int, char**) {
-  test();
-  static_assert(test());
-
-  return 0;
-}
diff --git a/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_trivial.pass.cpp b/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_trivial.pass.cpp
deleted file mode 100644
index ff10c7919200d..0000000000000
--- a/libcxx/test/libcxx-03/algorithms/alg.modifying.operations/copy_move_trivial.pass.cpp
+++ /dev/null
@@ -1,334 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++03, c++11, c++14, c++17
-// In the modules build, adding another overload of `memmove` doesn't work.
-// UNSUPPORTED: clang-modules-build
-// GCC complains about "ambiguating" `__builtin_memmove`.
-// UNSUPPORTED: gcc
-
-// <algorithm>
-
-// These tests check that `std::copy` and `std::move` (including their variations like `copy_n`) forward to
-// `memmove` when possible.
-
-#include <cstddef>
-
-struct Foo {
-  int i = 0;
-
-  Foo() = default;
-  Foo(int set_i) : i(set_i) {}
-
-  friend bool operator==(const Foo&, const Foo&) = default;
-};
-
-static bool memmove_called = false;
-
-// This template is a better match than the actual `builtin_memmove` (it can match the pointer type exactly, without an
-// implicit conversion to `void*`), so it should hijack the call inside `std::copy` and similar algorithms if it's made.
-template <class Dst, class Src>
-constexpr void* __builtin_memmove(Dst* dst, Src* src, std::size_t count) {
-  memmove_called = true;
-  return __builtin_memmove(static_cast<void*>(dst), static_cast<const void*>(src), count);
-}
-
-#include <algorithm>
-#include <cassert>
-#include <cstdint>
-#include <iterator>
-#include <limits>
-#include <ranges>
-#include <type_traits>
-
-#include "test_iterators.h"
-
-static_assert(std::is_trivially_copyable_v<Foo>);
-
-// To test pointers to functions.
-void Func() {}
-using FuncPtr = decltype(&Func);
-
-// To test pointers to members.
-struct S {
-  int mem_obj = 0;
-  void MemFunc() {}
-};
-using MemObjPtr = decltype(&S::mem_obj);
-using MemFuncPtr = decltype(&S::MemFunc);
-
-// To test bitfields.
-struct BitfieldS {
-  unsigned char b1 : 3;
-  unsigned char : 2;
-  unsigned char b2 : 5;
-  friend bool operator==(const BitfieldS&, const BitfieldS&) = default;
-};
-
-// To test non-default alignment.
-struct AlignedS {
-  alignas(64) int x;
-  alignas(8) int y;
-  friend bool operator==(const AlignedS&, const AlignedS&) = default;
-};
-
-template <class T>
-T make(int from) {
-  return T(from);
-}
-
-template <class T>
-requires (std::is_pointer_v<T> && !std::is_function_v<std::remove_pointer_t<T>>)
-T make(int i) {
-  static std::remove_pointer_t<T> arr[8];
-  return arr + i;
-}
-
-template <class T>
-requires std::same_as<T, FuncPtr>
-FuncPtr make(int) {
-  return &Func;
-}
-
-template <class T>
-requires std::same_as<T, MemObjPtr>
-MemObjPtr make(int) {
-  return &S::mem_obj;
-}
-
-template <class T>
-requires std::same_as<T, MemFuncPtr>
-MemFuncPtr make(int) {
-  return &S::MemFunc;
-}
-
-template <class T>
-requires std::same_as<T, BitfieldS>
-BitfieldS make(int x) {
-  BitfieldS result = {};
-  result.b1 = x;
-  result.b2 = x;
-  return result;
-}
-
-template <class T>
-requires std::same_as<T, AlignedS>
-AlignedS make(int x) {
-  AlignedS result;
-  result.x = x;
-  result.y = x;
-  return result;
-}
-
-template <class InIter, template <class> class SentWrapper, class OutIter, class Func>
-void test_one(Func func) {
-  using From = std::iter_value_t<InIter>;
-  using To = std::iter_value_t<OutIter>;
-
-  // Normal case.
-  {
-    const std::size_t N = 4;
-
-    From input[N] = {make<From>(1), make<From>(2), make<From>(3), make<From>(4)};
-    To output[N];
-
-    auto in     = InIter(input);
-    auto in_end = InIter(input + N);
-    auto sent   = SentWrapper<decltype(in_end)>(in_end);
-    auto out    = OutIter(output);
-
-    assert(!memmove_called);
-    func(in, sent, out, N);
-    assert(memmove_called);
-    memmove_called = false;
-
-    assert(std::equal(input, input + N, output, [](const From& lhs, const To& rhs) {
-        // Prevents warnings/errors due to mismatched signed-ness.
-        if constexpr (std::convertible_to<From, To>) {
-          return static_cast<To>(lhs) == rhs;
-        } else if constexpr (std::convertible_to<To, From>) {
-          return lhs == static_cast<From>(rhs);
-        }
-    }));
-  }
-}
-
-template <class InIter, template <class> class SentWrapper, class OutIter>
-void test_copy_and_move() {
-  // Classic.
-  if constexpr (std::same_as<InIter, SentWrapper<InIter>>) {
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t) {
-      std::copy(first, last, out);
-    });
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t n) {
-      std::copy_backward(first, last, out + n);
-    });
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto, auto out, std::size_t n) {
-      std::copy_n(first, n, out);
-    });
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t) {
-      std::move(first, last, out);
-    });
-    test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t n) {
-      std::move_backward(first, last, out + n);
-    });
-  }
-
-  // Ranges.
-  test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t) {
-    std::ranges::copy(first, last, out);
-  });
-  test_one<InIter, SentWrapper, OutIter>([](auto first, auto last, auto out, std::size_t n) {
-    std::ranges::copy_backward(firs...
[truncated]

Copy link
Member

@ldionne ldionne left a comment

Choose a reason for hiding this comment

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

LGTM with CI passing.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants