[all-commits] [llvm/llvm-project] f0fc8c: [libc++] Use named Lit features to flag back-deplo...

Louis Dionne via All-commits all-commits at lists.llvm.org
Mon Mar 27 09:44:45 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f0fc8c4878ed3ed60bd7536f97ef2673eb691ae7
      https://github.com/llvm/llvm-project/commit/f0fc8c4878ed3ed60bd7536f97ef2673eb691ae7
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M libcxx/test/libcxx/algorithms/alg.sorting/assert.min.max.pass.cpp
    M libcxx/test/libcxx/assertions/customize_verbose_abort.link-time.pass.cpp
    M libcxx/test/libcxx/containers/sequences/array/array.zero/assert.back.pass.cpp
    M libcxx/test/libcxx/containers/sequences/array/array.zero/assert.front.pass.cpp
    M libcxx/test/libcxx/containers/sequences/array/array.zero/assert.subscript.pass.cpp
    M libcxx/test/libcxx/containers/sequences/deque/assert.pop_back.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/list.modifiers/assert.erase_iter.end.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/list.modifiers/assert.pop_back.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.back.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.cback.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.cfront.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.cindex.oob.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.front.empty.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.index.oob.pass.cpp
    M libcxx/test/libcxx/containers/sequences/vector/assert.pop_back.empty.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.map/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.map/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.map/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multimap/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multimap/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multimap/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multiset/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multiset/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.multiset/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.set/assert.bucket.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.set/assert.bucket_size.pass.cpp
    M libcxx/test/libcxx/containers/unord/unord.set/assert.max_load_factor.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.iter_sent.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.iter_size.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.other_span.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.cons/assert.range.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.elem/assert.back.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.elem/assert.front.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.elem/assert.op_idx.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.sub/assert.first.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.sub/assert.last.pass.cpp
    M libcxx/test/libcxx/containers/views/views.span/span.sub/assert.subspan.pass.cpp
    M libcxx/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/assert.deallocate.pass.cpp
    M libcxx/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/assert.deallocate.pass.cpp
    M libcxx/test/libcxx/experimental/memory/memory.resource.global/global_memory_resource_lifetime.pass.cpp
    M libcxx/test/libcxx/experimental/memory/memory.resource.global/new_delete_resource_lifetime.pass.cpp
    M libcxx/test/libcxx/input.output/filesystems/class.path/path.itr/assert.iterator.pass.cpp
    M libcxx/test/libcxx/iterators/assert.advance.pass.cpp
    M libcxx/test/libcxx/iterators/assert.next.pass.cpp
    M libcxx/test/libcxx/iterators/assert.prev.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_bidirectional_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_forward_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_input_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_iterator.compile.pass.cpp
    M libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_random_access_iterator.compile.pass.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/aligned_alloc_availability.verify.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.pass.cpp
    M libcxx/test/libcxx/memory/aligned_allocation_macro.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.drop.while/assert.begin.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.cfront.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.cindex.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.front.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.access/assert.index.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.capacity/PR53170.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.erase_iter.null.pass.cpp
    M libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp
    M libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp
    M libcxx/test/libcxx/thread/atomic.availability.verify.cpp
    M libcxx/test/libcxx/thread/barrier.availability.verify.cpp
    M libcxx/test/libcxx/thread/futures/futures.promise/assert.set_exception.pass.cpp
    M libcxx/test/libcxx/thread/futures/futures.promise/assert.set_exception_at_thread_exit.pass.cpp
    M libcxx/test/libcxx/thread/latch.availability.verify.cpp
    M libcxx/test/libcxx/thread/semaphore.availability.verify.cpp
    M libcxx/test/libcxx/utilities/assert.exception_guard.no_exceptions.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.expected/assert.arrow.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.expected/assert.deref.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.expected/assert.error.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.void/assert.deref.pass.cpp
    M libcxx/test/libcxx/utilities/expected/expected.void/assert.error.pass.cpp
    M libcxx/test/libcxx/utilities/optional/optional.object/optional.object.observe/assert.dereference.pass.cpp
    M libcxx/test/libcxx/utilities/optional/optional.object/optional.object.observe/assert.op_arrow.pass.cpp
    M libcxx/test/libcxx/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair.pass.cpp
    M libcxx/test/libcxx/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_underaligned_buffer.pass.cpp
    M libcxx/test/libcxx/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp
    M libcxx/test/libcxx/utilities/utility/mem.res/mem.res.pool/unsynchronized_buffer.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.clamp/assert.ranges_clamp.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/assert.pop_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/assert.ranges_pop_heap.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/general.compile.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/pointer.compile.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_all.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_one.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait_explicit.pass.cpp
    M libcxx/test/std/containers/container.adaptors/container.adaptors.format/format.functions.format.pass.cpp
    M libcxx/test/std/containers/container.adaptors/container.adaptors.format/format.functions.vformat.pass.cpp
    M libcxx/test/std/containers/iterator.rel_ops.compile.pass.cpp
    M libcxx/test/std/containers/sequences/vector.bool/vector.bool.fmt/format.functions.format.pass.cpp
    M libcxx/test/std/containers/sequences/vector.bool/vector.bool.fmt/format.functions.vformat.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair_evil.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/destroy.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/resource.pass.cpp
    M libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/select_on_container_copy_construction.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_deque_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_forward_list_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_list_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_map_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_regex_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_set_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_unordered_map_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_unordered_set_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.aliases/header_vector_synop.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp
    M libcxx/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/filebuf.members/open_path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.members/open_path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/open_path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.members/open_path.pass.cpp
    M libcxx/test/std/input.output/filesystems/lit.local.cfg
    M libcxx/test/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt.byname/ctor_char16_t_char8_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt.byname/ctor_char32_t_char8_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/ctor_char16_t_char8_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/ctor_char32_t_char8_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_char8_t_always_noconv.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_char8_t_encoding.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_char8_t_in.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_char8_t_length.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_char8_t_max_length.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_char8_t_out.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_char8_t_unshift.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_char8_t_always_noconv.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_char8_t_encoding.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_char8_t_in.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_char8_t_length.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_char8_t_max_length.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_char8_t_out.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_char8_t_unshift.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/utf_sanity_check.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/types_char16_t_char8_t.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.ctype/locale.codecvt/types_char32_t_char8_t.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/assign.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/copy.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/default.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.cons/string.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.members/combine.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.statics/classic.pass.cpp
    M libcxx/test/std/localization/locales/locale/locale.statics/global.pass.cpp
    M libcxx/test/std/numerics/rand/rand.device/ctor.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive_and_drop.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive_and_wait.pass.cpp
    M libcxx/test/std/thread/thread.barrier/completion.pass.cpp
    M libcxx/test/std/thread/thread.latch/arrive_and_wait.pass.cpp
    M libcxx/test/std/thread/thread.latch/count_down.pass.cpp
    M libcxx/test/std/thread/thread.latch/try_wait.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/implicit_ctad.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/default.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_try_to_lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/mutex.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/owns_lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/assign.fail.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/copy.fail.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/default.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/assign.compile.fail.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/copy.compile.fail.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/default.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp
    M libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until_deadlock_bug.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/acquire.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/binary.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/release.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/timed.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/try_acquire.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.day/time.cal.day.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.md/time.cal.md.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.mdlast/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.month/time.cal.month.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.mwd/time.cal.mwd.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.wdidx/time.cal.wdidx.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.wdlast/time.cal.wdlast.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.year/time.cal.year.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.ym/time.cal.ym.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.ymwd/time.cal.ymwd.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.clock/time.clock.file/now.pass.cpp
    M libcxx/test/std/time/time.clock/time.clock.file/to_from_sys.pass.cpp
    M libcxx/test/std/time/time.duration/time.duration.nonmember/ostream.pass.cpp
    M libcxx/test/std/time/time.hms/time.hms.nonmembers/ostream.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.day.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.duration.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.hh_mm_ss.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.month.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.month_day.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.month_day_last.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.month_weekday.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.weekday.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.weekday_index.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.weekday_last.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.year.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.year_month.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.year_month_day.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.year_month_day_last.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.year_month_weekday.pass.cpp
    M libcxx/test/std/time/time.syn/formatter.year_month_weekday_last.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.assign/copy.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.assign/value.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.cons/copy.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.cons/move.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.cons/value.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.modifiers/reset.pass.cpp
    M libcxx/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_request_invalid_value_category.fail.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.verify.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/make_any.pass.cpp
    M libcxx/test/std/utilities/any/any.nonmembers/swap.pass.cpp
    M libcxx/test/std/utilities/charconv/charconv.msvc/test.pass.cpp
    M libcxx/test/std/utilities/format/format.formattable/concept.formattable.compile.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.floating_point.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/P2418.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/ascii.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/escaped_output.ascii.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/escaped_output.unicode.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format.locale.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/format.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to.locale.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to_n.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to_n.locale.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to_n.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format_to_n.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/formatted_size.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/formatted_size.locale.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/formatted_size.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/formatted_size.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/unicode.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat_to.locale.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/vformat_to.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtkind/format_kind.compile.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtmap/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtmap/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtset/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtset/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.tuple/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.tuple/format.functions.format.verify.cpp
    M libcxx/test/std/utilities/format/format.tuple/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.array.bounded.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.array.unbounded.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.array.bounded.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.array.unbounded.pass.cpp
    M libcxx/test/std/utilities/optional/optional.bad_optional_access/default.pass.cpp
    M libcxx/test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp
    M libcxx/test/std/utilities/optional/optional.monadic/and_then.pass.cpp
    M libcxx/test/std/utilities/optional/optional.monadic/transform.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp
    M libcxx/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp
    M libcxx/test/std/utilities/optional/optional.specalg/make_optional.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/default.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/memory_resource_convert.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/equal.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/not_equal.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_bytes.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_object.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_rvalue.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_values.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair_evil.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_types.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/deallocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/default_type.compile.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/destroy.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/new_delete_object.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/resource.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/select_on_container_copy_construction.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_forward_list_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_regex_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop2.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.global/default_resource.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.global/null_memory_resource.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/with_default_resource.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/without_buffer.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_deallocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_exception_safety.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_initial_buffer.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_zero_sized_buffer.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/equality.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/ctor_does_not_allocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/sync_with_default_resource.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/unsync_with_default_resource.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/equality.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_overaligned_request.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_reuse_blocks.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_deallocate_matches_allocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_overaligned_request.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_reuse_blocks.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_deallocate_matches_allocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/equal.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/not_equal.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/allocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/deallocate.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/dtor.pass.cpp
    M libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/is_equal.pass.cpp
    M libcxx/test/std/utilities/utility/utility.unreachable/assert.unreachable.pass.cpp
    M libcxx/test/std/utilities/variant/variant.bad_variant_access/bad_variant_access.pass.cpp
    M libcxx/test/std/utilities/variant/variant.get/get_index.pass.cpp
    M libcxx/test/std/utilities/variant/variant.get/get_type.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp
    M libcxx/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit/robust_against_adl.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit/visit.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit/visit_return_type.pass.cpp
    M libcxx/test/support/test.support/test_check_assertion.pass.cpp
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  -----------
  [libc++] Use named Lit features to flag back-deployment XFAILs

Instead of writing something like `XFAIL: use_system_cxx_lib && target=...`
to XFAIL back-deployment tests, introduce named Lit features like
`availability-shared_mutex-missing` to represent those. This makes the
XFAIL annotations leaner, and solves the problem of XFAIL comments
potentially getting out of sync. This would also make it easier for
another vendor to add their own annotations to the test suite by simply
changing how the feature is defined for their OS releases, instead
of having to modify hundreds of tests to add repetitive annotations.

This doesn't touch *all* annotations -- only annotations that were widely
duplicated are given named features (e.g. when filesystem or shared_mutex
were introduced). I still think it probably doesn't make sense to have a
named feature for every single fix we make to the dylib.

This is in essence a revert of 2659663, but since then the test suite
has changed significantly. Back when I did 2659663, the configuration
files we have for the test suite right now were being bootstrapped and
it wasn't clear how to provide these features for back-deployment in
that context. Since then, we have a streamlined way of defining these
features in `features.py` and that doesn't impact the ability for a
configuration file to stay minimal.

The original motivation for this change was that I am about to propose
a change that would touch essentially all XFAIL annotations for back-deployment
in the test suite, and this greatly reduces the number of lines changed
by that upcoming change, in addition to making the test suite generally
better.

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




More information about the All-commits mailing list