summaryrefslogtreecommitdiff
path: root/libcxx/test/std
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std')
-rw-r--r--libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/ranges.equal.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp2
-rw-r--r--libcxx/test/std/algorithms/algorithms.results/out_value_result.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/assign.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp4
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/ctor.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/exchange.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp4
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp4
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/load.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_all.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_one.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.float.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/store.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/wait.pass.cpp2
-rw-r--r--libcxx/test/std/atomics/types.pass.cpp2
-rw-r--r--libcxx/test/std/containers/associative/map/map.cons/copy_assign.pass.cpp4
-rw-r--r--libcxx/test/std/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp226
-rw-r--r--libcxx/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp4
-rw-r--r--libcxx/test/std/containers/associative/multiset/emplace.pass.cpp10
-rw-r--r--libcxx/test/std/containers/associative/multiset/multiset.cons/copy_assign.pass.cpp4
-rw-r--r--libcxx/test/std/containers/associative/set/emplace.pass.cpp11
-rw-r--r--libcxx/test/std/containers/associative/set/insert_iter_iter.pass.cpp192
-rw-r--r--libcxx/test/std/containers/associative/set/set.cons/copy_assign.pass.cpp4
-rw-r--r--libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp8
-rw-r--r--libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp3
-rw-r--r--libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp8
-rw-r--r--libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp3
-rw-r--r--libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/deque/deque.cons/from_range.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/forwardlist/types.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/list/types.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/vector.bool/small_allocator_size.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/vector/vector.capacity/max_size.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit_exceptions.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp2
-rw-r--r--libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp2
-rw-r--r--libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_range.pass.cpp14
-rw-r--r--libcxx/test/std/containers/unord/unord.multiset/emplace.pass.cpp13
-rw-r--r--libcxx/test/std/containers/unord/unord.set/emplace.pass.cpp14
-rw-r--r--libcxx/test/std/containers/views/mdspan/aligned_accessor/access.pass.cpp2
-rw-r--r--libcxx/test/std/containers/views/mdspan/aligned_accessor/offset.pass.cpp2
-rw-r--r--libcxx/test/std/containers/views/mdspan/mdspan/conversion.pass.cpp2
-rw-r--r--libcxx/test/std/containers/views/views.span/span.cons/copy.pass.cpp2
-rw-r--r--libcxx/test/std/containers/views/views.span/span.cons/initializer_list.pass.cpp2
-rw-r--r--libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.constructors/lwg3629.pass.cpp2
-rw-r--r--libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.modifiers/lwg3629.pass.cpp2
-rw-r--r--libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.constructors/lwg3629.pass.cpp2
-rw-r--r--libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.modifiers/lwg3629.pass.cpp2
-rw-r--r--libcxx/test/std/double_include.gen.py8
-rw-r--r--libcxx/test/std/experimental/utilities/meta/meta.detect/detected_t.pass.cpp1
-rw-r--r--libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected.pass.cpp1
-rw-r--r--libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_convertible.pass.cpp1
-rw-r--r--libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_exact.pass.cpp1
-rw-r--r--libcxx/test/std/header_inclusions.gen.py10
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap_min.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/seekoff.pass.cpp1
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/xsputn.pass.cpp149
-rw-r--r--libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/filesystems/class.rec.dir.itr/cache_refresh_iter.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/iostreams.base/fpos/fpos.operations/fpos.pass.cpp1
-rw-r--r--libcxx/test/std/input.output/iostreams.base/ios.base/ios.types/ios_Init/ios_Init.global.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/string.streams/istringstream/istringstream.members/str.allocator_propagation.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.members/str.allocator_propagation.pass.cpp2
-rw-r--r--libcxx/test/std/input.output/string.streams/stringstream/stringstream.members/str.allocator_propagation.pass.cpp2
-rw-r--r--libcxx/test/std/iterators/iterator.range/mandatory_inclusions.gen.py3
-rw-r--r--libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp3
-rw-r--r--libcxx/test/std/iterators/iterator.requirements/indirectcallable/projected/projected.compile.pass.cpp2
-rw-r--r--libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/copy.pass.cpp14
-rw-r--r--libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_overlong.pass.cpp2
-rw-r--r--libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/c.math/cmath.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/c.math/hermite.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/complex.number/complex.special/gh_101960_ambiguous_ctor.pass.cpp3
-rw-r--r--libcxx/test/std/numerics/complex.number/complex/bit_cast.pass.cpp3
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/and_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/divide_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/minus_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/modulo_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/or_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/plus_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_left_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_right_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/times_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/xor_valarray.pass.cpp2
-rw-r--r--libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp2
-rw-r--r--libcxx/test/std/ranges/range.adaptors/range.as.rvalue/adaptor.pass.cpp12
-rw-r--r--libcxx/test/std/ranges/range.adaptors/range.lazy.split/types.h4
-rw-r--r--libcxx/test/std/ranges/range.adaptors/range.zip.transform/general.pass.cpp2
-rw-r--r--libcxx/test/std/ranges/range.factories/range.iota.view/size.pass.cpp2
-rw-r--r--libcxx/test/std/ranges/range.req/range.view/enable_view.compile.pass.cpp2
-rw-r--r--libcxx/test/std/ranges/ranges_robust_against_no_unique_address.pass.cpp2
-rw-r--r--libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp2
-rw-r--r--libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp2
-rw-r--r--libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp16
-rw-r--r--libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp2
-rw-r--r--libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp4
-rw-r--r--libcxx/test/std/thread/futures/futures.async/thread_create_failure.pass.cpp2
-rw-r--r--libcxx/test/std/thread/futures/futures.task/futures.task.members/type.verify.cpp2
-rw-r--r--libcxx/test/std/thread/thread.jthread/assign.move.pass.cpp2
-rw-r--r--libcxx/test/std/thread/thread.jthread/join.deadlock.pass.cpp2
-rw-r--r--libcxx/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp2
-rw-r--r--libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/cmp.pass.cpp2
-rw-r--r--libcxx/test/std/time/time.duration/time.duration.nonmember/ostream.pass.cpp2
-rw-r--r--libcxx/test/std/time/time.hms/time.hms.nonmembers/ostream.pass.cpp2
-rw-r--r--libcxx/test/std/time/time.syn/formatter.duration.pass.cpp2
-rw-r--r--libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.local_time.pass.cpp4
-rw-r--r--libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp10
-rw-r--r--libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/to_sys_choose.pass.cpp2
-rw-r--r--libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/allocator.adaptor/base-is-uglified.compile.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/charconv/charconv.from.chars/floating_point.pass.cpp40
-rw-r--r--libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.copy.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/expected/expected.expected/observers/has_value.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/expected/types.h7
-rw-r--r--libcxx/test/std/utilities/format/format.functions/bug_81590.compile.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/format/format.functions/format_tests.h2
-rw-r--r--libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.const_ref.pass.cpp (renamed from libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.const_ref.pass.cpp)0
-rw-r--r--libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.refwrap.pass.cpp (renamed from libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap.pass.cpp)0
-rw-r--r--libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.refwrap_const.pass.cpp (renamed from libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap_const.pass.cpp)0
-rw-r--r--libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.const_ref.pass.cpp (renamed from libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp)0
-rw-r--r--libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.refwrap.pass.cpp (renamed from libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap.pass.cpp)0
-rw-r--r--libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.refwrap_const.pass.cpp (renamed from libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap_const.pass.cpp)0
-rw-r--r--libcxx/test/std/utilities/function.objects/unord.hash/enum.pass.cpp10
-rw-r--r--libcxx/test/std/utilities/function.objects/unord.hash/floating.pass.cpp10
-rw-r--r--libcxx/test/std/utilities/function.objects/unord.hash/integral.pass.cpp10
-rw-r--r--libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/uses_allocator_construction_args.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/memory/specialized.algorithms/overload_compare_iterator.h2
-rw-r--r--libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp5
-rw-r--r--libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/pr40459.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp3
-rw-r--r--libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.compile.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp34
-rw-r--r--libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/gh_101960_internal_ctor.compile.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/smartptr/adapt/types.h4
-rw-r--r--libcxx/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/template.bitset/bitset.members/nonstdmem.uglified.compile.pass.cpp6
-rw-r--r--libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp4
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.class.general/equality.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/assign.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/copy.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/default.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/memory_resource_convert.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/other_alloc.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/equal.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/not_equal.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_bytes.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_object.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_rvalue.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_values.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair_evil.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_types.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/deallocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/destroy.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/new_delete_object.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/resource.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/select_on_container_copy_construction.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_forward_list_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_regex_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop2.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.global/default_resource.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.global/null_memory_resource.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/copy_move.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/with_default_resource.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/without_buffer.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_deallocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_exception_safety.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_initial_buffer.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_zero_sized_buffer.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/equality.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/ctor_does_not_allocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/sync_with_default_resource.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/unsync_with_default_resource.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/equality.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_overaligned_request.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_reuse_blocks.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_deallocate_matches_allocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_overaligned_request.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_reuse_blocks.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_deallocate_matches_allocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/construct.verify.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/equal.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/not_equal.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/private_members.verify.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/protected_members.verify.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/allocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/deallocate.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/dtor.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/is_equal.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/mem.res/nodiscard.verify.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_like.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/pairs/pairs.pair/pair.incomplete.compile.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/variant/variant.visit/visit_return_type.pass.cpp2
242 files changed, 879 insertions, 407 deletions
diff --git a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp
index cfcaf1c8a6dd..3c9cf9bd6100 100644
--- a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp
@@ -114,7 +114,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
// Validate std::copy with std::vector<bool> iterators and custom storage types.
// Ensure that assigned bits hold the intended values, while unassigned bits stay unchanged.
- // Related issue: https://github.com/llvm/llvm-project/issues/131692.
+ // Related issue: https://llvm.org/PR131692.
{
//// Tests for std::copy with aligned bits
diff --git a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
index def192d4d663..b921591c1962 100644
--- a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
@@ -116,7 +116,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
// Validate std::copy_backward with std::vector<bool> iterators and custom storage types.
// Ensure that assigned bits hold the intended values, while unassigned bits stay unchanged.
- // Related issue: https://github.com/llvm/llvm-project/issues/131718.
+ // Related issue: https://llvm.org/PR131718.
{
//// Tests for std::copy_backward with aligned bits
diff --git a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp
index f541c914b401..0e0fbf39602d 100644
--- a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp
@@ -241,7 +241,7 @@ constexpr bool test() {
// Validate std::ranges::copy with std::vector<bool> iterators and custom storage types.
// Ensure that assigned bits hold the intended values, while unassigned bits stay unchanged.
- // Related issue: https://github.com/llvm/llvm-project/issues/131692.
+ // Related issue: https://llvm.org/PR131692.
{
//// Tests for std::ranges::copy with aligned bits
diff --git a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp
index e7251ab905db..46beea04aa2f 100644
--- a/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp
@@ -359,7 +359,7 @@ constexpr bool test() {
// Validate std::ranges::copy_backward with std::vector<bool> iterators and custom storage types.
// Ensure that assigned bits hold the intended values, while unassigned bits stay unchanged.
- // Related issue: https://github.com/llvm/llvm-project/issues/131718.
+ // Related issue: https://llvm.org/PR131718.
{
//// Tests for std::ranges::copy_backward with aligned bits
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp
index 7bc61a9b7f71..e696dcdb3435 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp
@@ -56,7 +56,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
// Fix std::count for std::vector<bool> with small storage types, e.g., std::uint16_t, unsigned short.
- // See https://github.com/llvm/llvm-project/issues/122528
+ // See https://llvm.org/PR122528
{
using Alloc = sized_allocator<bool, std::uint8_t, std::int8_t>;
std::vector<bool, Alloc> in(100, true, Alloc(1));
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp
index ab9d6a09faeb..2c1346a74374 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp
@@ -285,7 +285,7 @@ constexpr bool test() {
}
// Fix std::ranges::count for std::vector<bool> with small storage types, e.g., std::uint16_t, unsigned short.
- // See https://github.com/llvm/llvm-project/issues/122528
+ // See https://llvm.org/PR122528
{
using Alloc = sized_allocator<bool, std::uint8_t, std::int8_t>;
std::vector<bool, Alloc> in(100, true, Alloc(1));
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp
index 859532d4b79c..a041e38a4838 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp
@@ -178,7 +178,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
// Make sure std::equal behaves properly with std::vector<bool> iterators with custom size types.
- // See issue: https://github.com/llvm/llvm-project/issues/126369.
+ // See issue: https://llvm.org/PR126369.
{
//// Tests for std::equal with aligned bits
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/ranges.equal.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/ranges.equal.pass.cpp
index 3f3af71de6a1..8f35a3cf3458 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/ranges.equal.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.equal/ranges.equal.pass.cpp
@@ -446,7 +446,7 @@ constexpr bool test() {
}
// Make sure std::equal behaves properly with std::vector<bool> iterators with custom size types.
- // See issue: https://github.com/llvm/llvm-project/issues/126369.
+ // See issue: https://llvm.org/PR126369.
{
//// Tests for std::equal with aligned bits
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp
index 989edcb3f6ee..c32abce72046 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp
@@ -244,7 +244,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
// Verify that the std::vector<bool>::iterator optimization works properly for allocators with custom size types
- // Fix https://github.com/llvm/llvm-project/issues/122528
+ // Fix https://llvm.org/PR122528
{
using Alloc = sized_allocator<bool, std::uint8_t, std::int8_t>;
std::vector<bool, Alloc> in(100, false, Alloc(1));
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp
index d7e6be9928a2..5b4abc45b6f4 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp
@@ -219,7 +219,7 @@ constexpr bool test() {
}
// Verify that the std::vector<bool>::iterator optimization works properly for allocators with custom size types
- // See https://github.com/llvm/llvm-project/issues/122528
+ // See https://llvm.org/PR122528
{
using Alloc = sized_allocator<bool, std::uint8_t, std::int8_t>;
std::vector<bool, Alloc> in(100, false, Alloc(1));
diff --git a/libcxx/test/std/algorithms/algorithms.results/out_value_result.pass.cpp b/libcxx/test/std/algorithms/algorithms.results/out_value_result.pass.cpp
index 7bdbb7f60e9a..9f45976c2968 100644
--- a/libcxx/test/std/algorithms/algorithms.results/out_value_result.pass.cpp
+++ b/libcxx/test/std/algorithms/algorithms.results/out_value_result.pass.cpp
@@ -123,7 +123,7 @@ constexpr bool test() {
static_assert(std::is_same_v<double, decltype(res.value)>);
}
{
- // Check aggregate initiazliation
+ // Check aggregate initialization
out_value_result<int, int> res = {1, 2};
assert(res.out == 1);
assert(res.value == 2);
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/assign.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/assign.pass.cpp
index b3b90af0b497..687b324f3f19 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/assign.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/assign.pass.cpp
@@ -56,7 +56,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp
index 2f84f26b9f7d..e741e2283251 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp
@@ -219,7 +219,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp
index 5a39ec761f34..4b686a2d79ed 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp
@@ -67,7 +67,7 @@ void testBasic(MemoryOrder... memory_order) {
assert(a.load() == T(1.2));
// bug
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
if constexpr (!std::same_as<T, long double>) {
assert(expected == T(1.2));
}
@@ -235,7 +235,7 @@ int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/ctor.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/ctor.pass.cpp
index d1828b1a9b74..42f00ed35f3c 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/ctor.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/ctor.pass.cpp
@@ -55,7 +55,7 @@ constexpr void testOne() {
constexpr bool test() {
testOne<float>();
testOne<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// testOne<long double>();
return true;
}
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/exchange.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/exchange.pass.cpp
index 1e74165602d8..ba90119fb0ec 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/exchange.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/exchange.pass.cpp
@@ -69,7 +69,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp
index 1b426959475a..f82fdf70bb23 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_add.pass.cpp
@@ -8,7 +8,7 @@
// UNSUPPORTED: c++03, c++11, c++14, c++17
// XFAIL: !has-64-bit-atomics
-// https://github.com/llvm/llvm-project/issues/72893
+// https://llvm.org/PR72893
// XFAIL: target={{x86_64-.*}} && tsan
// floating-point-type fetch_add(floating-point-type,
@@ -112,7 +112,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp
index cac7352646fa..72fcc868072e 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_sub.pass.cpp
@@ -8,7 +8,7 @@
// UNSUPPORTED: c++03, c++11, c++14, c++17
// XFAIL: !has-64-bit-atomics
-// https://github.com/llvm/llvm-project/issues/72893
+// https://llvm.org/PR72893
// XFAIL: target={{x86_64-.*}} && tsan
// floating-point-type fetch_sub(floating-point-type,
@@ -113,7 +113,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/load.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/load.pass.cpp
index 2648b2914c1a..695fd593b51e 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/load.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/load.pass.cpp
@@ -132,7 +132,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp
index 95835c0030d3..84cd0a28b08b 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/lockfree.pass.cpp
@@ -54,7 +54,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_all.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_all.pass.cpp
index 1e0be68da263..cddf7788e631 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_all.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_all.pass.cpp
@@ -92,7 +92,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_one.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_one.pass.cpp
index 7b5e668af026..da4c69280ffe 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_one.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/notify_one.pass.cpp
@@ -76,7 +76,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.float.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.float.pass.cpp
index 268f0343f3be..1f0890606574 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.float.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.float.pass.cpp
@@ -52,7 +52,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp
index d38a2d2ed197..ac24e2842032 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.minus_equals.pass.cpp
@@ -95,7 +95,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp
index c53b0320036b..b80ea2390461 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.plus_equals.pass.cpp
@@ -95,7 +95,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/store.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/store.pass.cpp
index ad354f6630a3..34bd09e945f9 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/store.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/store.pass.cpp
@@ -106,7 +106,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/wait.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/wait.pass.cpp
index 500bcc879efc..32c67cc4762c 100644
--- a/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/wait.pass.cpp
+++ b/libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/wait.pass.cpp
@@ -117,7 +117,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
- // TODO https://github.com/llvm/llvm-project/issues/47978
+ // TODO https://llvm.org/PR48634
// test<long double>();
return 0;
diff --git a/libcxx/test/std/atomics/types.pass.cpp b/libcxx/test/std/atomics/types.pass.cpp
index 8737694e2a07..c979392290b3 100644
--- a/libcxx/test/std/atomics/types.pass.cpp
+++ b/libcxx/test/std/atomics/types.pass.cpp
@@ -68,7 +68,7 @@ struct test_atomic<T, /*Integral=*/true, false, false> {
};
template <class T>
-struct test_atomic<T, false, /*Foating=*/true, false> {
+struct test_atomic<T, false, /*Floating=*/true, false> {
test_atomic() {
using A = std::atomic<T>;
A a;
diff --git a/libcxx/test/std/containers/associative/map/map.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/associative/map/map.cons/copy_assign.pass.cpp
index e01a10b679ac..56c6cdd7e1e9 100644
--- a/libcxx/test/std/containers/associative/map/map.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/associative/map/map.cons/copy_assign.pass.cpp
@@ -70,7 +70,7 @@ template <class Alloc, class AllocatorInvariant = NoOp>
void test_alloc(const Alloc& lhs_alloc = Alloc(),
const Alloc& rhs_alloc = Alloc(),
AllocatorInvariant check_alloc_invariant = NoOp()) {
- { // Test empty/non-empy map combinations
+ { // Test empty/non-empty map combinations
{ // assign from a non-empty container into an empty one
using V = std::pair<const int, int>;
using Map = std::map<int, int, std::less<int>, Alloc>;
@@ -225,7 +225,7 @@ void test_alloc(const Alloc& lhs_alloc = Alloc(),
}
check_alloc_invariant();
}
- { // Make a somewhat larget set to exercise the algorithm a bit
+ { // Make a somewhat larger set to exercise the algorithm a bit
using V = std::pair<const int, int>;
using Map = std::map<int, int, std::less<int>, Alloc>;
diff --git a/libcxx/test/std/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp b/libcxx/test/std/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp
index 0baff65f6193..dfbeb33698e6 100644
--- a/libcxx/test/std/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp
+++ b/libcxx/test/std/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp
@@ -13,64 +13,188 @@
// template <class InputIterator>
// void insert(InputIterator first, InputIterator last);
-#include <map>
+#include <array>
#include <cassert>
+#include <map>
-#include "test_macros.h"
#include "test_iterators.h"
#include "min_allocator.h"
-int main(int, char**) {
- {
- typedef std::map<int, double> M;
- typedef std::pair<int, double> P;
- P ar[] = {
- P(1, 1),
- P(1, 1.5),
- P(1, 2),
- P(2, 1),
- P(2, 1.5),
- P(2, 2),
- P(3, 1),
- P(3, 1.5),
- P(3, 2),
- };
- M m;
- m.insert(cpp17_input_iterator<P*>(ar), cpp17_input_iterator<P*>(ar + sizeof(ar) / sizeof(ar[0])));
- assert(m.size() == 3);
- assert(m.begin()->first == 1);
- assert(m.begin()->second == 1);
- assert(std::next(m.begin())->first == 2);
- assert(std::next(m.begin())->second == 1);
- assert(std::next(m.begin(), 2)->first == 3);
- assert(std::next(m.begin(), 2)->second == 1);
+template <class Iter, class Alloc>
+void test_alloc() {
+ { // Check that an empty range works correctly
+ { // Without elements in the container
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+
+ std::array<std::pair<const int, int>, 0> arr;
+
+ Map map;
+ map.insert(Iter(arr.data()), Iter(arr.data() + arr.size()));
+ assert(map.size() == 0);
+ assert(map.begin() == map.end());
+ }
+ { // With 1 element in the container
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ std::array<Pair, 0> arr;
+
+ Map map;
+ map.insert(Pair(0, 0));
+ map.insert(Iter(arr.data()), Iter(arr.data() + arr.size()));
+ assert(map.size() == 1);
+ assert(*std::next(map.begin(), 0) == Pair(0, 0));
+ assert(std::next(map.begin(), 1) == map.end());
+ }
+ { // With multiple elements in the container
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ std::array<Pair, 0> arr;
+
+ Map map;
+ map.insert(Pair(0, 0));
+ map.insert(Pair(1, 1));
+ map.insert(Pair(2, 2));
+ map.insert(Iter(arr.data()), Iter(arr.data() + arr.size()));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == Pair(0, 0));
+ assert(*std::next(map.begin(), 1) == Pair(1, 1));
+ assert(*std::next(map.begin(), 2) == Pair(2, 2));
+ assert(std::next(map.begin(), 3) == map.end());
+ }
}
-#if TEST_STD_VER >= 11
- {
- typedef std::map<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M;
- typedef std::pair<int, double> P;
- P ar[] = {
- P(1, 1),
- P(1, 1.5),
- P(1, 2),
- P(2, 1),
- P(2, 1.5),
- P(2, 2),
- P(3, 1),
- P(3, 1.5),
- P(3, 2),
- };
- M m;
- m.insert(cpp17_input_iterator<P*>(ar), cpp17_input_iterator<P*>(ar + sizeof(ar) / sizeof(ar[0])));
- assert(m.size() == 3);
- assert(m.begin()->first == 1);
- assert(m.begin()->second == 1);
- assert(std::next(m.begin())->first == 2);
- assert(std::next(m.begin())->second == 1);
- assert(std::next(m.begin(), 2)->first == 3);
- assert(std::next(m.begin(), 2)->second == 1);
+ { // Check that 1 element is inserted correctly
+ { // Without elements in the container
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1)};
+
+ Map map;
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 1);
+ assert(*std::next(map.begin(), 0) == Pair(1, 1));
+ assert(std::next(map.begin(), 1) == map.end());
+ }
+ { // With 1 element in the container - a different key
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1)};
+
+ Map map;
+ map.insert(Pair(0, 0));
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 2);
+ assert(*std::next(map.begin(), 0) == Pair(0, 0));
+ assert(*std::next(map.begin(), 1) == Pair(1, 1));
+ assert(std::next(map.begin(), 2) == map.end());
+ }
+ { // With 1 element in the container - the same key
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1)};
+
+ Map map;
+ map.insert(Pair(1, 2));
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 1);
+ assert(*std::next(map.begin(), 0) == Pair(1, 2));
+ assert(std::next(map.begin(), 1) == map.end());
+ }
+ { // With multiple elements in the container
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1)};
+
+ Map map;
+ map.insert(Pair(0, 0));
+ map.insert(Pair(1, 1));
+ map.insert(Pair(2, 2));
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == Pair(0, 0));
+ assert(*std::next(map.begin(), 1) == Pair(1, 1));
+ assert(*std::next(map.begin(), 2) == Pair(2, 2));
+ assert(std::next(map.begin(), 3) == map.end());
+ }
}
-#endif
+ { // Check that multiple elements are inserted correctly
+ { // Without elements in the container
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1), Pair(1, 1), Pair(3, 3)};
+
+ Map map;
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 2);
+ assert(*std::next(map.begin(), 0) == Pair(1, 1));
+ assert(*std::next(map.begin(), 1) == Pair(3, 3));
+ assert(std::next(map.begin(), 2) == map.end());
+ }
+ { // With 1 element in the container - a different key
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1), Pair(1, 1), Pair(3, 3)};
+
+ Map map;
+ map.insert(Pair(0, 0));
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == Pair(0, 0));
+ assert(*std::next(map.begin(), 1) == Pair(1, 1));
+ assert(*std::next(map.begin(), 2) == Pair(3, 3));
+ assert(std::next(map.begin(), 3) == map.end());
+ }
+ { // With 1 element in the container - the same key
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1), Pair(2, 2), Pair(3, 3)};
+
+ Map map;
+ map.insert(Pair(1, 1));
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == Pair(1, 1));
+ assert(*std::next(map.begin(), 1) == Pair(2, 2));
+ assert(*std::next(map.begin(), 2) == Pair(3, 3));
+ assert(std::next(map.begin(), 3) == map.end());
+ }
+ { // With multiple elements in the container
+ using Map = std::map<int, int, std::less<int>, Alloc>;
+ using Pair = std::pair<const int, int>;
+
+ Pair arr[] = {Pair(1, 1), Pair(3, 3), Pair(4, 4)};
+
+ Map map;
+ map.insert(Pair(0, 0));
+ map.insert(Pair(1, 1));
+ map.insert(Pair(2, 2));
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 5);
+ assert(*std::next(map.begin(), 0) == Pair(0, 0));
+ assert(*std::next(map.begin(), 1) == Pair(1, 1));
+ assert(*std::next(map.begin(), 2) == Pair(2, 2));
+ assert(*std::next(map.begin(), 3) == Pair(3, 3));
+ assert(*std::next(map.begin(), 4) == Pair(4, 4));
+ assert(std::next(map.begin(), 5) == map.end());
+ }
+ }
+}
+
+void test() {
+ test_alloc<cpp17_input_iterator<std::pair<const int, int>*>, std::allocator<std::pair<const int, int> > >();
+ test_alloc<cpp17_input_iterator<std::pair<const int, int>*>, min_allocator<std::pair<const int, int> > >();
+}
+
+int main(int, char**) {
+ test();
return 0;
}
diff --git a/libcxx/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp
index 5830283e9b0c..e52da3a4a631 100644
--- a/libcxx/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp
@@ -68,7 +68,7 @@ template <class Alloc, class AllocatorInvariant = NoOp>
void test_alloc(const Alloc& lhs_alloc = Alloc(),
const Alloc& rhs_alloc = Alloc(),
AllocatorInvariant check_alloc_invariant = NoOp()) {
- { // Test empty/non-empy multimap combinations
+ { // Test empty/non-empty multimap combinations
{ // assign from a non-empty container into an empty one
using V = std::pair<const int, int>;
using Map = std::multimap<int, int, std::less<int>, Alloc>;
@@ -223,7 +223,7 @@ void test_alloc(const Alloc& lhs_alloc = Alloc(),
}
check_alloc_invariant();
}
- { // Make a somewhat larget set to exercise the algorithm a bit
+ { // Make a somewhat larger set to exercise the algorithm a bit
using V = std::pair<const int, int>;
using Map = std::multimap<int, int, std::less<int>, Alloc>;
diff --git a/libcxx/test/std/containers/associative/multiset/emplace.pass.cpp b/libcxx/test/std/containers/associative/multiset/emplace.pass.cpp
index bddfd8f62143..97cae1c56521 100644
--- a/libcxx/test/std/containers/associative/multiset/emplace.pass.cpp
+++ b/libcxx/test/std/containers/associative/multiset/emplace.pass.cpp
@@ -15,12 +15,12 @@
// template <class... Args>
// iterator emplace(Args&&... args);
-#include <set>
#include <cassert>
+#include <set>
-#include "test_macros.h"
#include "../../Emplaceable.h"
#include "DefaultOnly.h"
+#include "MoveOnly.h"
#include "min_allocator.h"
int main(int, char**) {
@@ -77,6 +77,12 @@ int main(int, char**) {
assert(m.size() == 1);
assert(*r == 2);
}
+ { // We're unwrapping pairs for `{,multi}map`. Make sure we're not trying to do that for multiset.
+ using Set = std::multiset<std::pair<MoveOnly, MoveOnly>>;
+ Set set;
+ auto iter = set.emplace(std::pair<MoveOnly, MoveOnly>(2, 4));
+ assert(set.begin() == iter);
+ }
return 0;
}
diff --git a/libcxx/test/std/containers/associative/multiset/multiset.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/associative/multiset/multiset.cons/copy_assign.pass.cpp
index 8511f05ab57e..0a5fe62eed69 100644
--- a/libcxx/test/std/containers/associative/multiset/multiset.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/associative/multiset/multiset.cons/copy_assign.pass.cpp
@@ -68,7 +68,7 @@ template <class Alloc, class AllocatorInvariant = NoOp>
void test_alloc(const Alloc& lhs_alloc = Alloc(),
const Alloc& rhs_alloc = Alloc(),
AllocatorInvariant check_alloc_invariant = NoOp()) {
- { // Test empty/non-empy multiset combinations
+ { // Test empty/non-empty multiset combinations
{ // assign from a non-empty container into an empty one
using Set = std::multiset<int, std::less<int>, Alloc>;
@@ -216,7 +216,7 @@ void test_alloc(const Alloc& lhs_alloc = Alloc(),
assert(std::next(orig.begin(), 3) == orig.end());
}
check_alloc_invariant();
- { // Make a somewhat larget multiset to exercise the algorithm a bit
+ { // Make a somewhat larger multiset to exercise the algorithm a bit
using Set = std::multiset<int, std::less<int>, Alloc>;
Set orig(rhs_alloc);
diff --git a/libcxx/test/std/containers/associative/set/emplace.pass.cpp b/libcxx/test/std/containers/associative/set/emplace.pass.cpp
index e038de77d48a..e5a9f9590aad 100644
--- a/libcxx/test/std/containers/associative/set/emplace.pass.cpp
+++ b/libcxx/test/std/containers/associative/set/emplace.pass.cpp
@@ -15,12 +15,12 @@
// template <class... Args>
// pair<iterator, bool> emplace(Args&&... args);
-#include <set>
#include <cassert>
+#include <set>
-#include "test_macros.h"
#include "../../Emplaceable.h"
#include "DefaultOnly.h"
+#include "MoveOnly.h"
#include "min_allocator.h"
int main(int, char**) {
@@ -84,6 +84,13 @@ int main(int, char**) {
assert(m.size() == 1);
assert(*r.first == 2);
}
+ { // We're unwrapping pairs for `{,multi}map`. Make sure we're not trying to do that for set.
+ using Set = std::set<std::pair<MoveOnly, MoveOnly>>;
+ Set set;
+ auto res = set.emplace(std::pair<MoveOnly, MoveOnly>(2, 4));
+ assert(std::get<1>(res));
+ assert(set.begin() == std::get<0>(res));
+ }
return 0;
}
diff --git a/libcxx/test/std/containers/associative/set/insert_iter_iter.pass.cpp b/libcxx/test/std/containers/associative/set/insert_iter_iter.pass.cpp
index 6c9707ca31a8..8576c63a72de 100644
--- a/libcxx/test/std/containers/associative/set/insert_iter_iter.pass.cpp
+++ b/libcxx/test/std/containers/associative/set/insert_iter_iter.pass.cpp
@@ -13,38 +13,178 @@
// template <class InputIterator>
// void insert(InputIterator first, InputIterator last);
-#include <set>
+#include <array>
#include <cassert>
+#include <set>
-#include "test_macros.h"
-#include "test_iterators.h"
#include "min_allocator.h"
+#include "test_iterators.h"
-int main(int, char**) {
- {
- typedef std::set<int> M;
- typedef int V;
- V ar[] = {1, 1, 1, 2, 2, 2, 3, 3, 3};
- M m;
- m.insert(cpp17_input_iterator<const V*>(ar), cpp17_input_iterator<const V*>(ar + sizeof(ar) / sizeof(ar[0])));
- assert(m.size() == 3);
- assert(*m.begin() == 1);
- assert(*std::next(m.begin()) == 2);
- assert(*std::next(m.begin(), 2) == 3);
+template <class Iter, class Alloc>
+void test_alloc() {
+ { // Check that an empty range works correctly
+ { // Without elements in the container
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ std::array<int, 0> arr;
+
+ Map map;
+ map.insert(Iter(arr.data()), Iter(arr.data() + arr.size()));
+ assert(map.size() == 0);
+ assert(map.begin() == map.end());
+ }
+ { // With 1 element in the container
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ std::array<int, 0> arr;
+
+ Map map;
+ map.insert(0);
+ map.insert(Iter(arr.data()), Iter(arr.data() + arr.size()));
+ assert(map.size() == 1);
+ assert(*std::next(map.begin(), 0) == 0);
+ assert(std::next(map.begin(), 1) == map.end());
+ }
+ { // With multiple elements in the container
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ std::array<int, 0> arr;
+
+ Map map;
+ map.insert(0);
+ map.insert(1);
+ map.insert(2);
+ map.insert(Iter(arr.data()), Iter(arr.data() + arr.size()));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == 0);
+ assert(*std::next(map.begin(), 1) == 1);
+ assert(*std::next(map.begin(), 2) == 2);
+ assert(std::next(map.begin(), 3) == map.end());
+ }
}
-#if TEST_STD_VER >= 11
- {
- typedef std::set<int, std::less<int>, min_allocator<int>> M;
- typedef int V;
- V ar[] = {1, 1, 1, 2, 2, 2, 3, 3, 3};
- M m;
- m.insert(cpp17_input_iterator<const V*>(ar), cpp17_input_iterator<const V*>(ar + sizeof(ar) / sizeof(ar[0])));
- assert(m.size() == 3);
- assert(*m.begin() == 1);
- assert(*std::next(m.begin()) == 2);
- assert(*std::next(m.begin(), 2) == 3);
+ { // Check that 1 element is inserted correctly
+ { // Without elements in the container
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1};
+
+ Map map;
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 1);
+ assert(*std::next(map.begin(), 0) == 1);
+ assert(std::next(map.begin(), 1) == map.end());
+ }
+ { // With 1 element in the container - a different key
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1};
+
+ Map map;
+ map.insert(0);
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 2);
+ assert(*std::next(map.begin(), 0) == 0);
+ assert(*std::next(map.begin(), 1) == 1);
+ assert(std::next(map.begin(), 2) == map.end());
+ }
+ { // With 1 element in the container - the same key
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1};
+
+ Map map;
+ map.insert(1);
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 1);
+ assert(*std::next(map.begin(), 0) == 1);
+ assert(std::next(map.begin(), 1) == map.end());
+ }
+ { // With multiple elements in the container
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1};
+
+ Map map;
+ map.insert(0);
+ map.insert(1);
+ map.insert(2);
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == 0);
+ assert(*std::next(map.begin(), 1) == 1);
+ assert(*std::next(map.begin(), 2) == 2);
+ assert(std::next(map.begin(), 3) == map.end());
+ }
+ }
+ { // Check that multiple elements are inserted correctly
+ { // Without elements in the container
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1, 1, 3};
+
+ Map map;
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 2);
+ assert(*std::next(map.begin(), 0) == 1);
+ assert(*std::next(map.begin(), 1) == 3);
+ assert(std::next(map.begin(), 2) == map.end());
+ }
+ { // With 1 element in the container - a different key
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1, 1, 3};
+
+ Map map;
+ map.insert(0);
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == 0);
+ assert(*std::next(map.begin(), 1) == 1);
+ assert(*std::next(map.begin(), 2) == 3);
+ assert(std::next(map.begin(), 3) == map.end());
+ }
+ { // With 1 element in the container - the same key
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1, 2, 3};
+
+ Map map;
+ map.insert(1);
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 3);
+ assert(*std::next(map.begin(), 0) == 1);
+ assert(*std::next(map.begin(), 1) == 2);
+ assert(*std::next(map.begin(), 2) == 3);
+ assert(std::next(map.begin(), 3) == map.end());
+ }
+ { // With multiple elements in the container
+ using Map = std::set<int, std::less<int>, Alloc>;
+
+ int arr[] = {1, 3, 4};
+
+ Map map;
+ map.insert(0);
+ map.insert(1);
+ map.insert(2);
+ map.insert(Iter(std::begin(arr)), Iter(std::end(arr)));
+ assert(map.size() == 5);
+ assert(*std::next(map.begin(), 0) == 0);
+ assert(*std::next(map.begin(), 1) == 1);
+ assert(*std::next(map.begin(), 2) == 2);
+ assert(*std::next(map.begin(), 3) == 3);
+ assert(*std::next(map.begin(), 4) == 4);
+ assert(std::next(map.begin(), 5) == map.end());
+ }
}
-#endif
+}
+
+void test() {
+ test_alloc<cpp17_input_iterator<int*>, std::allocator<int> >();
+ test_alloc<cpp17_input_iterator<int*>, min_allocator<int> >();
+}
+
+int main(int, char**) {
+ test();
return 0;
}
diff --git a/libcxx/test/std/containers/associative/set/set.cons/copy_assign.pass.cpp b/libcxx/test/std/containers/associative/set/set.cons/copy_assign.pass.cpp
index 85bc4e761f2c..dd1dbc86190f 100644
--- a/libcxx/test/std/containers/associative/set/set.cons/copy_assign.pass.cpp
+++ b/libcxx/test/std/containers/associative/set/set.cons/copy_assign.pass.cpp
@@ -70,7 +70,7 @@ template <class Alloc, class AllocatorInvariant = NoOp>
void test_alloc(const Alloc& lhs_alloc = Alloc(),
const Alloc& rhs_alloc = Alloc(),
AllocatorInvariant check_alloc_invariant = NoOp()) {
- { // Test empty/non-empy set combinations
+ { // Test empty/non-empty set combinations
{ // assign from a non-empty container into an empty one
using Set = std::set<int, std::less<int>, Alloc>;
@@ -218,7 +218,7 @@ void test_alloc(const Alloc& lhs_alloc = Alloc(),
assert(std::next(orig.begin(), 3) == orig.end());
}
check_alloc_invariant();
- { // Make a somewhat larget set to exercise the algorithm a bit
+ { // Make a somewhat larger set to exercise the algorithm a bit
using Set = std::set<int, std::less<int>, Alloc>;
Set orig(rhs_alloc);
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
index 18d332cf27b5..c727f7e51eb2 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign_noexcept.compile.pass.cpp
@@ -51,7 +51,7 @@ struct MoveThrowsComp {
void test() {
{
- using C = std::flat_map<int, int>;
+ using C [[maybe_unused]] = std::flat_map<int, int>;
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
{
@@ -73,7 +73,7 @@ void test() {
static_assert(!std::is_nothrow_move_assignable_v<C>);
}
{
- using C =
+ using C [[maybe_unused]] =
std::flat_map<MoveOnly,
int,
std::less<MoveOnly>,
@@ -82,7 +82,7 @@ void test() {
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
{
- using C =
+ using C [[maybe_unused]] =
std::flat_map<int,
MoveOnly,
std::less<int>,
@@ -92,7 +92,7 @@ void test() {
}
{
// Test with a comparator that throws on move-assignment.
- using C = std::flat_map<int, int, MoveThrowsComp>;
+ using C [[maybe_unused]] = std::flat_map<int, int, MoveThrowsComp>;
LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable_v<C>);
}
{
diff --git a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
index 48fdec42db3f..c0e31dc38426 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.map/flat.map.erasure/erase_if_exceptions.pass.cpp
@@ -66,7 +66,8 @@ struct ErasurePredicate {
};
int main(int, char**) {
- const std::pair<int, int> expected[] = {{1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
+ [[maybe_unused]] const std::pair<int, int> expected[] = {
+ {1, 1}, {2, 2}, {3, 3}, {4, 4}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
{
using M = std::flat_map<ThrowingAssignment, int, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
index 1aa40759fada..5f86bb336f13 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign_noexcept.compile.pass.cpp
@@ -51,7 +51,7 @@ struct MoveThrowsComp {
void test() {
{
- using C = std::flat_multimap<int, int>;
+ using C [[maybe_unused]] = std::flat_multimap<int, int>;
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
{
@@ -73,7 +73,7 @@ void test() {
static_assert(!std::is_nothrow_move_assignable_v<C>);
}
{
- using C =
+ using C [[maybe_unused]] =
std::flat_multimap<MoveOnly,
int,
std::less<MoveOnly>,
@@ -82,7 +82,7 @@ void test() {
LIBCPP_STATIC_ASSERT(std::is_nothrow_move_assignable_v<C>);
}
{
- using C =
+ using C [[maybe_unused]] =
std::flat_multimap<int,
MoveOnly,
std::less<int>,
@@ -92,7 +92,7 @@ void test() {
}
{
// Test with a comparator that throws on move-assignment.
- using C = std::flat_multimap<int, int, MoveThrowsComp>;
+ using C [[maybe_unused]] = std::flat_multimap<int, int, MoveThrowsComp>;
LIBCPP_STATIC_ASSERT(!std::is_nothrow_move_assignable_v<C>);
}
{
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
index 13b57202f786..95f7e11626a4 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.erasure/erase_if_exceptions.pass.cpp
@@ -68,7 +68,8 @@ struct ErasurePredicate {
};
int main(int, char**) {
- const std::pair<int, int> expected[] = {{1, 1}, {2, 2}, {3, 3}, {3, 3}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
+ [[maybe_unused]] const std::pair<int, int> expected[] = {
+ {1, 1}, {2, 2}, {3, 3}, {3, 3}, {5, 5}, {6, 6}, {7, 7}, {8, 8}};
{
using M = std::flat_multimap<ThrowingAssignment, int, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
diff --git a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
index 37b4a40f0165..11cc12aaeabf 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp
@@ -66,7 +66,7 @@ struct ErasurePredicate {
};
void test() {
- const int expected[] = {1, 2, 3, 4, 5, 6, 7, 8};
+ [[maybe_unused]] const int expected[] = {1, 2, 3, 4, 5, 6, 7, 8};
{
using M = std::flat_set<ThrowingAssignment, ThrowingComparator>;
for (int first_throw = 1; first_throw < 99; ++first_throw) {
diff --git a/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp b/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp
index 0bca4299c851..6d5427f3e363 100644
--- a/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp
+++ b/libcxx/test/std/containers/sequences/array/array.cons/initialization.pass.cpp
@@ -20,7 +20,7 @@ struct NoDefault {
struct test_initialization {
template <typename T>
TEST_CONSTEXPR_CXX14 void operator()() const {
- // Check default initalization
+ // Check default initialization
{
std::array<T, 0> a0;
(void)a0;
diff --git a/libcxx/test/std/containers/sequences/deque/deque.cons/from_range.pass.cpp b/libcxx/test/std/containers/sequences/deque/deque.cons/from_range.pass.cpp
index cfc07ab7bc79..3b3632a3d3c6 100644
--- a/libcxx/test/std/containers/sequences/deque/deque.cons/from_range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/deque/deque.cons/from_range.pass.cpp
@@ -28,7 +28,7 @@ int main(int, char**) {
static_assert(test_constraints<std::deque, int, double>());
// TODO(varconst): `deque`'s constructors currently aren't exception-safe.
- // See https://github.com/llvm/llvm-project/issues/62056.
+ // See https://llvm.org/PR62056.
//test_exception_safety_throwing_copy<std::deque>();
//test_exception_safety_throwing_allocator<std::deque, int>();
diff --git a/libcxx/test/std/containers/sequences/forwardlist/types.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/types.pass.cpp
index d2e48b351fc7..58b73415f1a7 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/types.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/types.pass.cpp
@@ -24,8 +24,6 @@
// ...
// };
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <forward_list>
#include <type_traits>
diff --git a/libcxx/test/std/containers/sequences/list/types.pass.cpp b/libcxx/test/std/containers/sequences/list/types.pass.cpp
index 755c8bf4df29..7075f6eff0b2 100644
--- a/libcxx/test/std/containers/sequences/list/types.pass.cpp
+++ b/libcxx/test/std/containers/sequences/list/types.pass.cpp
@@ -21,8 +21,6 @@
// typedef typename allocator_type::pointer pointer;
// typedef typename allocator_type::const_pointer const_pointer;
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <list>
#include <type_traits>
diff --git a/libcxx/test/std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp b/libcxx/test/std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp
index 30efe047054a..665867a7bad4 100644
--- a/libcxx/test/std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp
@@ -80,7 +80,7 @@ TEST_CONSTEXPR_CXX20 bool tests() {
}
#if TEST_STD_VER >= 23
-// https://github.com/llvm/llvm-project/issues/95161
+// https://llvm.org/PR95161
constexpr bool test_increasing_allocator() {
std::vector<bool, increasing_allocator<bool>> v;
v.push_back(1);
diff --git a/libcxx/test/std/containers/sequences/vector.bool/small_allocator_size.pass.cpp b/libcxx/test/std/containers/sequences/vector.bool/small_allocator_size.pass.cpp
index 95e4c18cc798..0136fb063160 100644
--- a/libcxx/test/std/containers/sequences/vector.bool/small_allocator_size.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector.bool/small_allocator_size.pass.cpp
@@ -12,7 +12,7 @@
// XFAIL: FROZEN-CXX03-HEADERS-FIXME
// This test ensures that std::vector<bool> handles allocator types with small size types
-// properly. Related issue: https://github.com/llvm/llvm-project/issues/121713.
+// properly. Related issue: https://llvm.org/PR121713.
#include <cassert>
#include <cstddef>
diff --git a/libcxx/test/std/containers/sequences/vector/vector.capacity/max_size.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.capacity/max_size.pass.cpp
index a3f44f33028e..af57e5ffc5cf 100644
--- a/libcxx/test/std/containers/sequences/vector/vector.capacity/max_size.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector/vector.capacity/max_size.pass.cpp
@@ -66,7 +66,7 @@ TEST_CONSTEXPR_CXX20 bool tests() {
#if TEST_STD_VER >= 11
- // Test with various allocators and diffrent size_type
+ // Test with various allocators and different size_type
{
test(std::vector<int>());
test(std::vector<short, std::allocator<short> >());
diff --git a/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp
index 48eb6ed85d47..bbea48364c1f 100644
--- a/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp
@@ -74,7 +74,7 @@ TEST_CONSTEXPR_CXX20 bool tests() {
}
#if TEST_STD_VER >= 23
-// https://github.com/llvm/llvm-project/issues/95161
+// https://llvm.org/PR95161
constexpr bool test_increasing_allocator() {
std::vector<int, increasing_allocator<int>> v;
v.push_back(1);
diff --git a/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit_exceptions.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit_exceptions.pass.cpp
index 521a25fdeda0..0bc3387e26b8 100644
--- a/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit_exceptions.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit_exceptions.pass.cpp
@@ -39,7 +39,7 @@ void test_allocation_exception_for_strong_guarantee(std::vector<T, Alloc>& v, co
} catch (...) {
}
- // As shrink_to_fit may swallow any exceptions, we place the checks outisde the catch block.
+ // As shrink_to_fit may swallow any exceptions, we place the checks outside the catch block.
assert(v.data() == old_data);
assert(v.size() == old_size);
assert(v.capacity() == old_cap);
diff --git a/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
index 6549735f7b51..1a6364a8018b 100644
--- a/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
@@ -79,7 +79,7 @@ TEST_CONSTEXPR_CXX20 void basic_test_cases() {
test<std::vector<int, safe_allocator<int> > >(
random_access_iterator<const int*>(a), random_access_iterator<const int*>(an));
- // Regression test for https://github.com/llvm/llvm-project/issues/46841
+ // Regression test for https://llvm.org/PR47497
{
std::vector<int> v1({}, forward_iterator<const int*>{});
std::vector<int> v2(forward_iterator<const int*>{}, {});
diff --git a/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp b/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
index 019f427c006a..d1eff51011c4 100644
--- a/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
+++ b/libcxx/test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
@@ -90,7 +90,7 @@ TEST_CONSTEXPR_CXX20 void basic_tests() {
test<std::vector<int, safe_allocator<int> > >(a, an, alloc);
}
- // Regression test for https://github.com/llvm/llvm-project/issues/46841
+ // Regression test for https://llvm.org/PR47497
{
min_allocator<int> alloc;
std::vector<int, min_allocator<int> > v1({}, forward_iterator<const int*>{}, alloc);
diff --git a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_range.pass.cpp b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_range.pass.cpp
index f8a2bdd3fee7..a8a9f5fdbb42 100644
--- a/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_range.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_range.pass.cpp
@@ -91,6 +91,20 @@ int main(int, char**) {
assert(c.size() == 0);
assert(k == c.end());
}
+ { // Make sure we're properly destroying the elements when erasing
+ { // When erasing part of a bucket
+ std::unordered_multimap<int, std::string> map;
+ map.insert(std::make_pair(1, "This is a long string to make sure ASan can detect a memory leak"));
+ map.insert(std::make_pair(1, "This is another long string to make sure ASan can detect a memory leak"));
+ map.erase(++map.begin(), map.end());
+ }
+ { // When erasing the whole bucket
+ std::unordered_multimap<int, std::string> map;
+ map.insert(std::make_pair(1, "This is a long string to make sure ASan can detect a memory leak"));
+ map.insert(std::make_pair(1, "This is another long string to make sure ASan can detect a memory leak"));
+ map.erase(map.begin(), map.end());
+ }
+ }
#if TEST_STD_VER >= 11
{
typedef std::unordered_multimap<int,
diff --git a/libcxx/test/std/containers/unord/unord.multiset/emplace.pass.cpp b/libcxx/test/std/containers/unord/unord.multiset/emplace.pass.cpp
index 886ddd74efd4..434f205f90b9 100644
--- a/libcxx/test/std/containers/unord/unord.multiset/emplace.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.multiset/emplace.pass.cpp
@@ -17,11 +17,11 @@
// template <class... Args>
// iterator emplace(Args&&... args);
-#include <unordered_set>
#include <cassert>
+#include <unordered_set>
-#include "test_macros.h"
#include "../../Emplaceable.h"
+#include "MoveOnly.h"
#include "min_allocator.h"
int main(int, char**) {
@@ -59,6 +59,15 @@ int main(int, char**) {
assert(c.size() == 3);
assert(*r == Emplaceable(5, 6));
}
+ { // We're unwrapping pairs for `unordered_{,multi}map`. Make sure we're not trying to do that for unordered_multiset.
+ struct PairHasher {
+ size_t operator()(const std::pair<MoveOnly, MoveOnly>& val) const { return std::hash<MoveOnly>()(val.first); }
+ };
+ using Set = std::unordered_multiset<std::pair<MoveOnly, MoveOnly>, PairHasher>;
+ Set set;
+ auto iter = set.emplace(std::pair<MoveOnly, MoveOnly>(2, 4));
+ assert(set.begin() == iter);
+ }
return 0;
}
diff --git a/libcxx/test/std/containers/unord/unord.set/emplace.pass.cpp b/libcxx/test/std/containers/unord/unord.set/emplace.pass.cpp
index 8972f03f2d2a..24e85a1ab7f5 100644
--- a/libcxx/test/std/containers/unord/unord.set/emplace.pass.cpp
+++ b/libcxx/test/std/containers/unord/unord.set/emplace.pass.cpp
@@ -17,11 +17,11 @@
// template <class... Args>
// pair<iterator, bool> emplace(Args&&... args);
-#include <unordered_set>
#include <cassert>
+#include <unordered_set>
-#include "test_macros.h"
#include "../../Emplaceable.h"
+#include "MoveOnly.h"
#include "min_allocator.h"
int main(int, char**) {
@@ -65,6 +65,16 @@ int main(int, char**) {
assert(*r.first == Emplaceable(5, 6));
assert(!r.second);
}
+ { // We're unwrapping pairs for `unordered_{,multi}map`. Make sure we're not trying to do that for unordered_set.
+ struct PairHasher {
+ size_t operator()(const std::pair<MoveOnly, MoveOnly>& val) const { return std::hash<MoveOnly>()(val.first); }
+ };
+ using Set = std::unordered_set<std::pair<MoveOnly, MoveOnly>, PairHasher>;
+ Set set;
+ auto res = set.emplace(std::pair<MoveOnly, MoveOnly>(2, 4));
+ assert(std::get<1>(res));
+ assert(set.begin() == std::get<0>(res));
+ }
return 0;
}
diff --git a/libcxx/test/std/containers/views/mdspan/aligned_accessor/access.pass.cpp b/libcxx/test/std/containers/views/mdspan/aligned_accessor/access.pass.cpp
index deca1226e47c..91a910899abc 100644
--- a/libcxx/test/std/containers/views/mdspan/aligned_accessor/access.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/aligned_accessor/access.pass.cpp
@@ -23,7 +23,7 @@
#include "test_macros.h"
// We are not using MinimalElementType.h because MinimalElementType is not
-// default consructible and uninitialized storage does not work in constexpr.
+// default constructible and uninitialized storage does not work in constexpr.
// Same as MinimalElementType but with a defaulted default constructor
struct MyMinimalElementType {
diff --git a/libcxx/test/std/containers/views/mdspan/aligned_accessor/offset.pass.cpp b/libcxx/test/std/containers/views/mdspan/aligned_accessor/offset.pass.cpp
index 66c30da787a8..3ed8cd752017 100644
--- a/libcxx/test/std/containers/views/mdspan/aligned_accessor/offset.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/aligned_accessor/offset.pass.cpp
@@ -23,7 +23,7 @@
#include "test_macros.h"
// We are not using MinimalElementType.h because MinimalElementType is not
-// default consructible and uninitialized storage does not work in constexpr.
+// default constructible and uninitialized storage does not work in constexpr.
// Same as MinimalElementType but with a defaulted default constructor
struct MyMinimalElementType {
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/conversion.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/conversion.pass.cpp
index 63a673f87b41..b587d904a061 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/conversion.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/conversion.pass.cpp
@@ -232,7 +232,7 @@ int main(int, char**) {
test<t, o, t, t, t, t, t, t, conv_test_accessor_c<int, t, t, o, o>>(conv_test_accessor_nc<int, t, o>());
// FIXME: these tests trigger what appears to be a compiler bug on MINGW32 with --target=x86_64-w64-windows-gnu
// https://godbolt.org/z/KK8aj5bs7
-// Bug report: https://github.com/llvm/llvm-project/issues/64077
+// Bug report: https://llvm.org/PR64077
#ifndef __MINGW32__
test<t, t, t, o, t, t, t, t, conv_test_accessor_c<int, o, t, t, t>>(conv_test_accessor_nc<int, t, t>());
test<t, t, t, t, t, t, t, t, conv_test_accessor_c<int, o, o, o, o>>(conv_test_accessor_nc<int, t, o>());
diff --git a/libcxx/test/std/containers/views/views.span/span.cons/copy.pass.cpp b/libcxx/test/std/containers/views/views.span/span.cons/copy.pass.cpp
index d3990fd60a45..aa284c58171f 100644
--- a/libcxx/test/std/containers/views/views.span/span.cons/copy.pass.cpp
+++ b/libcxx/test/std/containers/views/views.span/span.cons/copy.pass.cpp
@@ -95,7 +95,7 @@ constexpr bool test_all() {
test<std::string>();
test<const std::string>();
- // Regression test for https://github.com/llvm/llvm-project/issues/104496
+ // Regression test for https://llvm.org/PR104496
{
struct Incomplete;
std::span<Incomplete> x;
diff --git a/libcxx/test/std/containers/views/views.span/span.cons/initializer_list.pass.cpp b/libcxx/test/std/containers/views/views.span/span.cons/initializer_list.pass.cpp
index bc76e23fea3c..b413b71ec945 100644
--- a/libcxx/test/std/containers/views/views.span/span.cons/initializer_list.pass.cpp
+++ b/libcxx/test/std/containers/views/views.span/span.cons/initializer_list.pass.cpp
@@ -34,7 +34,7 @@ static_assert(!ConstElementType<std::span<int>>);
static_assert(ConstElementType<std::span<const int, 94>>);
static_assert(!ConstElementType<std::span<int, 94>>);
-// Constructor constraings
+// Constructor constraints
template <typename I, typename T, std::size_t... N>
concept HasInitializerListCtr = requires(I il) { std::span<T, N...>{il}; };
diff --git a/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.constructors/lwg3629.pass.cpp b/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.constructors/lwg3629.pass.cpp
index 076530b7007a..cbc002e5e7c3 100644
--- a/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.constructors/lwg3629.pass.cpp
+++ b/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.constructors/lwg3629.pass.cpp
@@ -12,7 +12,7 @@
// template <ErrorCodeEnum E> error_code(E e);
-// Regression test for https://github.com/llvm/llvm-project/issues/57614
+// Regression test for https://llvm.org/PR57614
int make_error_code; // It's important that this comes before <system_error>
diff --git a/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.modifiers/lwg3629.pass.cpp b/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.modifiers/lwg3629.pass.cpp
index 4bea503ec042..f327ef1fab7e 100644
--- a/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.modifiers/lwg3629.pass.cpp
+++ b/libcxx/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.modifiers/lwg3629.pass.cpp
@@ -12,7 +12,7 @@
// template <ErrorCodeEnum E> error_code& operator=(E e);
-// Regression test for https://github.com/llvm/llvm-project/issues/57614
+// Regression test for https://llvm.org/PR57614
int make_error_code; // It's important that this comes before <system_error>
diff --git a/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.constructors/lwg3629.pass.cpp b/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.constructors/lwg3629.pass.cpp
index f1e2d9a2ba34..efada2447861 100644
--- a/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.constructors/lwg3629.pass.cpp
+++ b/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.constructors/lwg3629.pass.cpp
@@ -12,7 +12,7 @@
// template <ErrorCodeEnum E> error_condition(E e);
-// Regression test for https://github.com/llvm/llvm-project/issues/57614
+// Regression test for https://llvm.org/PR57614
int make_error_condition; // It's important that this comes before <system_error>
diff --git a/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.modifiers/lwg3629.pass.cpp b/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.modifiers/lwg3629.pass.cpp
index 014f14a9fd82..3292d0bb1a6c 100644
--- a/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.modifiers/lwg3629.pass.cpp
+++ b/libcxx/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.modifiers/lwg3629.pass.cpp
@@ -12,7 +12,7 @@
// template <ErrorCodeEnum E> error_condition& operator=(E e);
-// Regression test for https://github.com/llvm/llvm-project/issues/57614
+// Regression test for https://llvm.org/PR57614
int make_error_condition; // It's important that this comes before <system_error>
diff --git a/libcxx/test/std/double_include.gen.py b/libcxx/test/std/double_include.gen.py
index fcf3b9a8fa2e..f019710be55b 100644
--- a/libcxx/test/std/double_include.gen.py
+++ b/libcxx/test/std/double_include.gen.py
@@ -8,9 +8,10 @@
# Test that we can include each header in two TU's and link them together.
-# RUN: %{python} %s %{libcxx-dir}/utils
+# We're using compiler-specific flags in this test
+# REQUIRES: (gcc || clang)
-# Block Lit from interpreting a RUN/XFAIL/etc inside the generation script.
+# RUN: %{python} %s %{libcxx-dir}/utils
# END.
import sys
@@ -28,9 +29,6 @@ for header in public_headers:
{lit_header_restrictions.get(header, '')}
{lit_header_undeprecations.get(header, '')}
-// We're using compiler-specific flags in this test
-// REQUIRES: (gcc || clang)
-
// RUN: %{{cxx}} -c %s -o %t.first.o %{{flags}} %{{compile_flags}}
// RUN: %{{cxx}} -c %s -o %t.second.o -DWITH_MAIN %{{flags}} %{{compile_flags}}
// RUN: %{{cxx}} -o %t.exe %t.first.o %t.second.o %{{flags}} %{{link_flags}}
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.detect/detected_t.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.detect/detected_t.pass.cpp
index b64b86f1b05e..4f9f26cb4587 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.detect/detected_t.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.detect/detected_t.pass.cpp
@@ -11,6 +11,7 @@
#include <experimental/type_traits>
#include <string>
+#include <utility>
#include "test_macros.h"
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected.pass.cpp
index 4a977917f1ec..6960c71abb33 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected.pass.cpp
@@ -11,6 +11,7 @@
#include <experimental/type_traits>
#include <string>
+#include <utility>
#include "test_macros.h"
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_convertible.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_convertible.pass.cpp
index 6906461f1edc..de1d223b9189 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_convertible.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_convertible.pass.cpp
@@ -11,6 +11,7 @@
#include <experimental/type_traits>
#include <string>
+#include <utility>
#include "test_macros.h"
diff --git a/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_exact.pass.cpp b/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_exact.pass.cpp
index 500187e86dd0..2161c11e7d2c 100644
--- a/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_exact.pass.cpp
+++ b/libcxx/test/std/experimental/utilities/meta/meta.detect/is_detected_exact.pass.cpp
@@ -11,6 +11,7 @@
#include <experimental/type_traits>
#include <string>
+#include <utility>
#include "test_macros.h"
diff --git a/libcxx/test/std/header_inclusions.gen.py b/libcxx/test/std/header_inclusions.gen.py
index 8ff93810069f..cebff94fdd1a 100644
--- a/libcxx/test/std/header_inclusions.gen.py
+++ b/libcxx/test/std/header_inclusions.gen.py
@@ -9,6 +9,11 @@
# Test that all headers include all the other headers they're supposed to, as
# prescribed by the Standard.
+# UNSUPPORTED: FROZEN-CXX03-HEADERS-FIXME
+
+# TODO: This is currently a libc++-specific way of testing the includes, but is a requirement for all implementation
+# REQUIRES: stdlib=libc++
+
# RUN: %{python} %s %{libcxx-dir}/utils
# END.
@@ -46,11 +51,6 @@ for header in public_headers:
print(
f"""\
//--- {header}.compile.pass.cpp
-// UNSUPPORTED: FROZEN-CXX03-HEADERS-FIXME
-
-// TODO: This is currently a libc++-specific way of testing the includes, but is a requirement for all implementation
-// REQUIRES: stdlib=libc++
-
{lit_header_restrictions.get(header, '')}
{lit_header_undeprecations.get(header, '')}
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap_min.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap_min.pass.cpp
index 6981360cef4f..0e86a399f4dc 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap_min.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.assign/nonmember_swap_min.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// This tests that swapping filebufs works correctly even when the small buffer
-// optimization is in use (https://github.com/llvm/llvm-project/issues/49282).
+// optimization is in use (https://llvm.org/PR49938).
// <fstream>
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/seekoff.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/seekoff.pass.cpp
index 8008901802e9..f6378e7998ee 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/seekoff.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/seekoff.pass.cpp
@@ -29,7 +29,6 @@ int main(int, char**)
| std::ios_base::trunc) != 0);
assert(f.is_open());
f.sputn("abcdefghijklmnopqrstuvwxyz", 26);
- LIBCPP_ASSERT(buf[0] == 'v');
pos_type p = f.pubseekoff(-15, std::ios_base::cur);
assert(p == 11);
assert(f.sgetc() == 'l');
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp
index 4e3afc17ad49..9d14abcedd42 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp
@@ -13,7 +13,7 @@
// basic_streambuf<charT, traits>* setbuf(char_type* s, streamsize n) override;
-// This test requires the fix to https://github.com/llvm/llvm-project/issues/60509 in the dylib,
+// This test requires the fix to https://llvm.org/PR60509 in the dylib,
// which landed in 5afb937d8a30445642ccaf33866ee4cdd0713222.
// XFAIL: using-built-library-before-llvm-19
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/xsputn.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/xsputn.pass.cpp
new file mode 100644
index 000000000000..2d6be5cf527a
--- /dev/null
+++ b/libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/xsputn.pass.cpp
@@ -0,0 +1,149 @@
+//===----------------------------------------------------------------------===//
+//
+// 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
+
+// <fstream>
+
+// streamsize xsputn(const char_type*, streamsize) override;
+
+// This isn't a required override by the standard, but most implementations override it, since it allows for
+// significantly improved performance in some cases. All of this code is required to work, so this isn't a libc++
+// extension
+
+#include <algorithm>
+#include <cassert>
+#include <codecvt>
+#include <cstring>
+#include <fstream>
+#include <locale>
+#include <vector>
+
+#include "test_macros.h"
+
+typedef std::filebuf::pos_type pos_type;
+typedef std::filebuf::off_type off_type;
+
+void sputn_seekoff(char* buf,
+ const size_t buf_size,
+ const std::streamsize chunk_size1,
+ const off_type offset1,
+ const std::streamsize chunk_size2) {
+ std::string data{"abcdefghijklmnopqrstuvwxyz"};
+ const std::streamsize data_size = static_cast<std::streamsize>(data.size());
+ assert(chunk_size1 <= data_size);
+ assert(chunk_size2 <= data_size);
+ // vector with expected data in the file to be written
+ std::size_t result_size = 5 + chunk_size1 + chunk_size2 + 1;
+ if (offset1 > 0) {
+ result_size += offset1;
+ }
+ std::vector<char> result(result_size, 0);
+ {
+ std::filebuf f;
+ f.pubsetbuf(buf, buf_size);
+ assert(f.open("sputn_seekoff.dat", std::ios_base::out) != 0);
+ assert(f.is_open());
+
+ assert(f.pubseekoff(off_type(5), std::ios_base::beg) = off_type(5));
+
+ std::vector<char> chunk(data.begin() + 5, data.begin() + 5 + chunk_size1);
+ std::copy(chunk.begin(), chunk.end(), result.begin() + 5);
+ const std::streamsize len1 = f.sputn(chunk.data(), chunk_size1);
+ assert(len1 == chunk_size1);
+ // check that nothing in the original chunk was modified by sputn()
+ assert(std::strncmp(chunk.data(), data.substr(5, len1).c_str(), len1) == 0);
+
+ pos_type p1 = f.pubseekoff(offset1, std::ios_base::cur);
+ char c;
+ if (p1 < 0) {
+ p1 = f.pubseekoff(0, std::ios_base::beg);
+ assert(p1 == 0);
+ c = '^';
+ } else {
+ assert(p1 == 5 + len1 + offset1);
+ if (p1 > data_size) {
+ c = '_';
+ } else {
+ c = data[p1];
+ }
+ }
+
+ result[p1] = c;
+ assert(f.sputc(c) == c);
+
+ f.pubseekpos(std::ios_base::beg);
+ result[0] = 'A';
+ assert(f.sputc(toupper(data[0])) == 'A');
+
+ pos_type end_pos = f.pubseekoff(off_type(0), std::ios_base::end);
+ assert(f.sputc(toupper(data[data_size - 1])) == 'Z');
+ result[end_pos] = 'Z';
+
+ assert(f.pubseekpos(p1) == p1);
+ result[p1] = toupper(c);
+ assert(f.sputc(toupper(c)) == toupper(c));
+
+ pos_type new_pos = result_size - chunk_size2;
+ pos_type p2 = f.pubseekoff(new_pos, std::ios_base::beg);
+ assert(p2 == new_pos);
+ chunk = std::vector<char>(data.end() - chunk_size2, data.end());
+ std::copy(chunk.begin(), chunk.end(), result.begin() + p2);
+ const std::streamsize len2 = f.sputn(chunk.data(), chunk_size2);
+ assert(len2 == chunk_size2);
+ assert(std::strncmp(chunk.data(), data.substr(data_size - chunk_size2, chunk_size2).c_str(), len2) == 0);
+ f.close();
+ }
+ std::filebuf f;
+ assert(f.open("sputn_seekoff.dat", std::ios_base::in) != 0);
+ assert(f.is_open());
+ std::vector<char> check(result.size(), -1);
+ const std::size_t len = f.sgetn(check.data(), check.size());
+ assert(len == result.size());
+ for (size_t i = 0; i < len; ++i) {
+ assert(check[i] == result[i]);
+ }
+}
+
+void sputn_not_open() {
+ std::vector<char> data(10, 'a');
+ std::filebuf f;
+ std::streamsize len = f.sputn(data.data(), data.size());
+ assert(len == 0);
+ assert(std::strncmp(data.data(), "aaaaaaaaaa", 10) == 0);
+}
+
+#ifndef TEST_HAS_NO_WIDE_CHARACTERS
+void sputn_not_open_wchar() {
+ std::vector<wchar_t> data(10, L'a');
+ std::wfilebuf f;
+ std::streamsize len = f.sputn(data.data(), data.size());
+ assert(len == 0);
+ assert(std::wcsncmp(data.data(), L"aaaaaaaaaa", 10) == 0);
+}
+#endif
+
+int main(int, char**) {
+ sputn_not_open();
+#ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ sputn_not_open_wchar();
+#endif
+
+ sputn_seekoff(nullptr, 10, 21, -27, 1);
+ sputn_seekoff(nullptr, 10, 1, -27, 1);
+ sputn_seekoff(nullptr, 10, 10, 14, 12);
+ sputn_seekoff(nullptr, 10, 1, -2, 1);
+ sputn_seekoff(nullptr, 10, 10, -4, 12);
+ sputn_seekoff(nullptr, 10, 11, -12, 3);
+ sputn_seekoff(nullptr, 10, 7, 3, 8);
+ sputn_seekoff(nullptr, 10, 5, -5, 12);
+ sputn_seekoff(nullptr, 10, 1, 1, 1);
+ sputn_seekoff(nullptr, 10, 9, 0, 1);
+
+ return 0;
+}
diff --git a/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp b/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
index 3bebf38a2a7c..56e35736d4f7 100644
--- a/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
+++ b/libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
@@ -132,7 +132,7 @@ void test_compare_basic() {
AssertOrderReturn<std::strong_ordering, path>();
#endif
- // check comarison results
+ // check comparison results
assert(testComparisons(p1, p2, /*isEqual*/ E == 0, /*isLess*/ E < 0));
#if TEST_STD_VER > 17
assert(testOrder(p1, p2, E <=> 0));
diff --git a/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/cache_refresh_iter.pass.cpp b/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/cache_refresh_iter.pass.cpp
index 3d45828968de..ff7035096e70 100644
--- a/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/cache_refresh_iter.pass.cpp
+++ b/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/cache_refresh_iter.pass.cpp
@@ -147,7 +147,7 @@ static void test_cached_values_in_iteration() {
const std::set<fs::path> dir_contents(static_env.RecDirIterationList.begin(), static_env.RecDirIterationList.end());
dir_entries = get_directory_entries_for(testDir, dir_contents);
}
- // Testing folder should be deleted after destoying static_test_env.
+ // Testing folder should be deleted after destroying static_test_env.
for (const auto& dir_entry : dir_entries) {
// During iteration Windows provides information only about symlink itself
diff --git a/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp b/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp
index 38e4e4d3fb9e..7d17d5066613 100644
--- a/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp
+++ b/libcxx/test/std/input.output/iostream.format/print.fun/includes.compile.pass.cpp
@@ -18,7 +18,7 @@
// using the granularized headers so it's possible to implement <print> without
// <format>. This would be a non-conforming implementation.
//
-// See https://github.com/llvm/llvm-project/issues/71925
+// See https://llvm.org/PR71925
#include <print>
#include <vector>
diff --git a/libcxx/test/std/input.output/iostreams.base/fpos/fpos.operations/fpos.pass.cpp b/libcxx/test/std/input.output/iostreams.base/fpos/fpos.operations/fpos.pass.cpp
index c3d3e0cfc411..8e2f84fba0de 100644
--- a/libcxx/test/std/input.output/iostreams.base/fpos/fpos.operations/fpos.pass.cpp
+++ b/libcxx/test/std/input.output/iostreams.base/fpos/fpos.operations/fpos.pass.cpp
@@ -14,6 +14,7 @@
#include <cassert>
#include <ios>
#include <type_traits>
+#include <utility>
#include "test_macros.h"
diff --git a/libcxx/test/std/input.output/iostreams.base/ios.base/ios.types/ios_Init/ios_Init.global.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios.base/ios.types/ios_Init/ios_Init.global.pass.cpp
index ac6a7213bb72..9046f0885a10 100644
--- a/libcxx/test/std/input.output/iostreams.base/ios.base/ios.types/ios_Init/ios_Init.global.pass.cpp
+++ b/libcxx/test/std/input.output/iostreams.base/ios.base/ios.types/ios_Init/ios_Init.global.pass.cpp
@@ -8,7 +8,7 @@
#include <iostream>
-// FIXME: Remove after issue https://github.com/llvm/llvm-project/issues/127348 resolved.
+// FIXME: Remove after issue https://llvm.org/PR127348 resolved.
extern "C" const char* __asan_default_options() { return "check_initialization_order=true:strict_init_order=true"; }
// Test that ios used from globals constructors doesn't trigger Asan initialization-order-fiasco.
diff --git a/libcxx/test/std/input.output/string.streams/istringstream/istringstream.members/str.allocator_propagation.pass.cpp b/libcxx/test/std/input.output/string.streams/istringstream/istringstream.members/str.allocator_propagation.pass.cpp
index ab41103aa856..0effb69be227 100644
--- a/libcxx/test/std/input.output/string.streams/istringstream/istringstream.members/str.allocator_propagation.pass.cpp
+++ b/libcxx/test/std/input.output/string.streams/istringstream/istringstream.members/str.allocator_propagation.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// This test ensures that we properly propagate allocators from istringstream's
diff --git a/libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.members/str.allocator_propagation.pass.cpp b/libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.members/str.allocator_propagation.pass.cpp
index a5ee2afab11e..dc57c912121d 100644
--- a/libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.members/str.allocator_propagation.pass.cpp
+++ b/libcxx/test/std/input.output/string.streams/ostringstream/ostringstream.members/str.allocator_propagation.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// This test ensures that we properly propagate allocators from ostringstream's
diff --git a/libcxx/test/std/input.output/string.streams/stringstream/stringstream.members/str.allocator_propagation.pass.cpp b/libcxx/test/std/input.output/string.streams/stringstream/stringstream.members/str.allocator_propagation.pass.cpp
index 46a9213eaf91..7aa51254974f 100644
--- a/libcxx/test/std/input.output/string.streams/stringstream/stringstream.members/str.allocator_propagation.pass.cpp
+++ b/libcxx/test/std/input.output/string.streams/stringstream/stringstream.members/str.allocator_propagation.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// This test ensures that we properly propagate allocators from stringstream's
diff --git a/libcxx/test/std/iterators/iterator.range/mandatory_inclusions.gen.py b/libcxx/test/std/iterators/iterator.range/mandatory_inclusions.gen.py
index 46290b1ed52a..34ede107e5ed 100644
--- a/libcxx/test/std/iterators/iterator.range/mandatory_inclusions.gen.py
+++ b/libcxx/test/std/iterators/iterator.range/mandatory_inclusions.gen.py
@@ -12,6 +12,8 @@
# <list>, <map>, <regex>, <set>, <span>, <string>, <string_view>, <unordered_map>,
# <unordered_set>, <vector>.
+# UNSUPPORTED: c++03
+
# RUN: %{python} %s %{libcxx-dir}/utils
# END.
@@ -53,7 +55,6 @@ for header in headers:
//--- {header}.pass.cpp
{lit_header_restrictions.get(header, '')}
{lit_header_undeprecations.get(header, '')}
-// UNSUPPORTED: c++03
#include <{header}>
#include <cassert>
diff --git a/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp
index 1dfdc609e636..e999b20345a5 100644
--- a/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp
@@ -34,8 +34,6 @@ static_assert(!has_indirect_result<int, int*>); // int isn't invocable
// Test ADL-proofing (P2538R1)
#if TEST_STD_VER >= 26 || defined(_LIBCPP_VERSION)
-// TODO: Enable this on GCC once this bug is fixed: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111419
-#ifndef TEST_COMPILER_GCC
struct Incomplete;
template<class T> struct Holder { T t; };
static_assert(std::same_as<std::indirect_result_t<int (&)(int), int*>, int>);
@@ -45,4 +43,3 @@ static_assert(std::same_as<std::indirect_result_t<int (&)(Holder<
static_assert(std::same_as<std::indirect_result_t<Holder<Incomplete>&(&)(Holder<Incomplete>*), Holder<Incomplete>**>, Holder<Incomplete>&>);
static_assert(std::same_as<std::indirect_result_t<Holder<Incomplete>*(&)(Holder<Incomplete>*), Holder<Incomplete>**>, Holder<Incomplete>*>);
#endif
-#endif
diff --git a/libcxx/test/std/iterators/iterator.requirements/indirectcallable/projected/projected.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/indirectcallable/projected/projected.compile.pass.cpp
index 06d1171c370a..7ab92660fb06 100644
--- a/libcxx/test/std/iterators/iterator.requirements/indirectcallable/projected/projected.compile.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.requirements/indirectcallable/projected/projected.compile.pass.cpp
@@ -61,4 +61,4 @@ constexpr bool projectable = requires {
static_assert(!projectable<int, void (*)(int)>); // int isn't indirectly_readable
static_assert(!projectable<S, void (*)(int)>); // S isn't weakly_incrementable
-static_assert(!projectable<int*, void(int)>); // void(int) doesn't satisfy indirectly_regular_unary_invcable
+static_assert(!projectable<int*, void(int)>); // void(int) doesn't satisfy indirectly_regular_unary_invocable
diff --git a/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/copy.pass.cpp b/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/copy.pass.cpp
index 050f4ac7cc6d..7474a8d3dde9 100644
--- a/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/copy.pass.cpp
+++ b/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/copy.pass.cpp
@@ -27,9 +27,9 @@ TEST_CONSTEXPR_CXX14 bool test_constexpr() {
return true;
}
-struct thowing_copy_constructor {
- thowing_copy_constructor() {}
- thowing_copy_constructor(const thowing_copy_constructor&) TEST_NOEXCEPT_FALSE {}
+struct throwing_copy_constructor {
+ throwing_copy_constructor() {}
+ throwing_copy_constructor(const throwing_copy_constructor&) TEST_NOEXCEPT_FALSE {}
};
int main(int, char**)
@@ -43,11 +43,11 @@ int main(int, char**)
#endif
}
{
- std::istream_iterator<thowing_copy_constructor> io;
- std::istream_iterator<thowing_copy_constructor> i = io;
- assert(i == std::istream_iterator<thowing_copy_constructor>());
+ std::istream_iterator<throwing_copy_constructor> io;
+ std::istream_iterator<throwing_copy_constructor> i = io;
+ assert(i == std::istream_iterator<throwing_copy_constructor>());
#if TEST_STD_VER >= 11
- static_assert(!std::is_nothrow_copy_constructible<std::istream_iterator<thowing_copy_constructor>>::value, "");
+ static_assert(!std::is_nothrow_copy_constructible<std::istream_iterator<throwing_copy_constructor>>::value, "");
#endif
}
{
diff --git a/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_overlong.pass.cpp b/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_overlong.pass.cpp
index 8fe74cdaca5e..0b7a38e5104c 100644
--- a/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_overlong.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_overlong.pass.cpp
@@ -16,8 +16,6 @@
// Ensure that money_get::do_get correct works when the input doesn't fit into the stack buffer
// (100 characters currently).
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <cassert>
#include <cstddef>
#include <ios>
diff --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp
index 06a974ad1bee..8db40b9e0dcb 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp
@@ -1858,7 +1858,7 @@ void test2() {
// 64 mantissa bits are grouped by nibble as they are stored in the long
// double representation (nibble aligned at the end of the least significant
// bits). This makes 1.0L to be formatted as "0x8p-3" (where the leading
- // bit of the mantissa is the higest bit in the 0x8 nibble), and makes
+ // bit of the mantissa is the highest bit in the 0x8 nibble), and makes
// __LDBL_MAX__ be formatted as "0xf.fffffffffffffffp+16380".
//
// FreeBSD normalizes/aligns the leading bit of the mantissa as a separate
diff --git a/libcxx/test/std/numerics/c.math/cmath.pass.cpp b/libcxx/test/std/numerics/c.math/cmath.pass.cpp
index 1f7c697784c1..e02ac3446e82 100644
--- a/libcxx/test/std/numerics/c.math/cmath.pass.cpp
+++ b/libcxx/test/std/numerics/c.math/cmath.pass.cpp
@@ -1210,7 +1210,7 @@ void test_hypot()
assert(std::hypot(1,4,8) == 9);
// Check for undue over-/underflows of intermediate results.
- // See discussion at https://github.com/llvm/llvm-project/issues/92782.
+ // See discussion at https://llvm.org/PR92782.
types::for_each(types::floating_point_types(), TestHypot3());
#endif
}
diff --git a/libcxx/test/std/numerics/c.math/hermite.pass.cpp b/libcxx/test/std/numerics/c.math/hermite.pass.cpp
index f1a37c5ddc15..290595094258 100644
--- a/libcxx/test/std/numerics/c.math/hermite.pass.cpp
+++ b/libcxx/test/std/numerics/c.math/hermite.pass.cpp
@@ -319,7 +319,7 @@ void test() {
static_assert(sizeof(double) == 8);
for (unsigned n = 0; n < get_maximal_order<Real>(); ++n) {
// Q: Why n=111 and x=300?
- // A: Both are chosen s.t. the first overlow occurs for some `n<get_maximal_order<Real>()`.
+ // A: Both are chosen s.t. the first overflow occurs for some `n<get_maximal_order<Real>()`.
if (n < 111) {
assert(std::isfinite(std::hermite(n, +300.0)));
assert(std::isfinite(std::hermite(n, -300.0)));
diff --git a/libcxx/test/std/numerics/complex.number/complex.special/gh_101960_ambiguous_ctor.pass.cpp b/libcxx/test/std/numerics/complex.number/complex.special/gh_101960_ambiguous_ctor.pass.cpp
index bffe8764386a..2bff5808852a 100644
--- a/libcxx/test/std/numerics/complex.number/complex.special/gh_101960_ambiguous_ctor.pass.cpp
+++ b/libcxx/test/std/numerics/complex.number/complex.special/gh_101960_ambiguous_ctor.pass.cpp
@@ -8,8 +8,7 @@
// <complex>
-// Regression test for https://github.com/llvm/llvm-project/issues/101960 where we used to
-// trigger an ambiguous constructor.
+// Regression test for https://llvm.org/PR101960 where we used to trigger an ambiguous constructor.
#include <complex>
#include <cassert>
diff --git a/libcxx/test/std/numerics/complex.number/complex/bit_cast.pass.cpp b/libcxx/test/std/numerics/complex.number/complex/bit_cast.pass.cpp
index c35d4d6c6329..e2aaf416f0e4 100644
--- a/libcxx/test/std/numerics/complex.number/complex/bit_cast.pass.cpp
+++ b/libcxx/test/std/numerics/complex.number/complex/bit_cast.pass.cpp
@@ -8,8 +8,7 @@
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// Make sure that std::bit_cast works with std::complex. Test case extracted from
-// https://github.com/llvm/llvm-project/issues/94620.
+// Make sure that std::bit_cast works with std::complex. Test case extracted from https://llvm.org/PR94620.
#include <bit>
#include <complex>
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/and_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/and_valarray.pass.cpp
index 15a2b03bf84b..594b99bc0958 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/and_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/and_valarray.pass.cpp
@@ -21,7 +21,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// Validate the function works for valarray, the proxies, and __val_expr.
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/divide_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/divide_valarray.pass.cpp
index e4fe675a9ec3..8c1fb2afd96f 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/divide_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/divide_valarray.pass.cpp
@@ -21,7 +21,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// Validate the function works for valarray, the proxies, and __val_expr.
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/minus_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/minus_valarray.pass.cpp
index 54aa7fd4c269..6e13d2618b6b 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/minus_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/minus_valarray.pass.cpp
@@ -21,7 +21,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// Validate the function works for valarray, the proxies, and __val_expr.
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/modulo_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/modulo_valarray.pass.cpp
index e52097ae68e2..1246ab35547b 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/modulo_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/modulo_valarray.pass.cpp
@@ -21,7 +21,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// Validate the function works for valarray, the proxies, and __val_expr.
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/or_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/or_valarray.pass.cpp
index 429953e272b6..9387fccbf153 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/or_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/or_valarray.pass.cpp
@@ -21,7 +21,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// Validate the function works for valarray, the proxies, and __val_expr.
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/plus_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/plus_valarray.pass.cpp
index 6aacf4f68b98..d1737a016e53 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/plus_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/plus_valarray.pass.cpp
@@ -21,7 +21,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// Validate the function works for valarray, the proxies, and __val_expr.
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_left_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_left_valarray.pass.cpp
index 3ff264308f88..cb1af636cde5 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_left_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_left_valarray.pass.cpp
@@ -19,7 +19,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// Validate the function works for valarray, the proxies, and __val_expr.
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_right_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_right_valarray.pass.cpp
index 140ec4dad5f4..11bbf01ea687 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_right_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/shift_right_valarray.pass.cpp
@@ -19,7 +19,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// valarray& operator>>=(const valarray& v);
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/times_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/times_valarray.pass.cpp
index 58361fa697b6..10333ee91029 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/times_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/times_valarray.pass.cpp
@@ -19,7 +19,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// valarray& operator*=(const valarray& v);
diff --git a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/xor_valarray.pass.cpp b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/xor_valarray.pass.cpp
index 0b3ffe4f9324..484189e806be 100644
--- a/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/xor_valarray.pass.cpp
+++ b/libcxx/test/std/numerics/numarray/template.valarray/valarray.cassign/xor_valarray.pass.cpp
@@ -19,7 +19,7 @@
//
// The const overloads of
// valarray::operator[](...) const
-// return propxy objects. These proxies are implicitly convertible to
+// return proxy objects. These proxies are implicitly convertible to
// std::valarray.
//
// valarray& operator^=(const valarray& v);
diff --git a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp
index edd6d9fef0d7..11329207f185 100644
--- a/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp
+++ b/libcxx/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp
@@ -149,7 +149,7 @@ int main(int argc, char**)
assert(res1 == 1324997410816LL);
}
- // https://github.com/llvm/llvm-project/issues/96196
+ // https://llvm.org/PR96196
{
assert(test_limits<unsigned int>());
assert(test_limits<std::uint32_t>());
diff --git a/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/adaptor.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/adaptor.pass.cpp
index dbe15238ebc8..12ae84c3fb34 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/adaptor.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/adaptor.pass.cpp
@@ -48,6 +48,18 @@ struct move_iterator_range {
static_assert(!std::ranges::view<move_iterator_range>);
static_assert(std::ranges::range<move_iterator_range>);
+// LWG4083: views::as_rvalue should reject non-input ranges
+struct I {
+ int operator*();
+ using difference_type = int;
+ I& operator++();
+ void operator++(int);
+};
+static_assert(!std::is_invocable_v<decltype(std::views::as_rvalue),
+ decltype(std::ranges::subrange{I{}, std::unreachable_sentinel})>);
+static_assert(
+ !HasPipe<decltype(std::ranges::subrange{I{}, std::unreachable_sentinel}), decltype(std::views::as_rvalue)>);
+
constexpr bool test() {
{ // view | views::as_rvalue
DefaultConstructibleView v{{}, 3};
diff --git a/libcxx/test/std/ranges/range.adaptors/range.lazy.split/types.h b/libcxx/test/std/ranges/range.adaptors/range.lazy.split/types.h
index 5cd400d495c8..41b49974d97b 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.lazy.split/types.h
+++ b/libcxx/test/std/ranges/range.adaptors/range.lazy.split/types.h
@@ -60,7 +60,7 @@ struct ForwardDiffView : std::ranges::view_base {
constexpr explicit ForwardDiffView() = default;
constexpr ForwardDiffView(const char* ptr) : ForwardDiffView(std::string_view(ptr)) {}
constexpr ForwardDiffView(std::string_view v) {
- // Workaround https://github.com/llvm/llvm-project/issues/55867
+ // Workaround https://llvm.org/PR55867
buffer_ = v;
}
constexpr ForwardDiffView(ForwardDiffView&&) = default;
@@ -144,7 +144,7 @@ struct InputView : std::ranges::view_base {
constexpr InputView() = default;
constexpr InputView(const char* s) : InputView(std::string_view(s)) {}
constexpr InputView(std::string_view v) {
- // Workaround https://github.com/llvm/llvm-project/issues/55867
+ // Workaround https://llvm.org/PR55867
buffer_ = v;
}
diff --git a/libcxx/test/std/ranges/range.adaptors/range.zip.transform/general.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.zip.transform/general.pass.cpp
index 3c35de27deb6..4b057946abba 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.zip.transform/general.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.zip.transform/general.pass.cpp
@@ -8,7 +8,7 @@
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
-// Some basic examples of how zip_tranform_view might be used in the wild. This is a general
+// Some basic examples of how zip_transform_view might be used in the wild. This is a general
// collection of sample algorithms and functions that try to mock general usage of
// this view.
diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/size.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/size.pass.cpp
index b894bc542be1..8563b85f65db 100644
--- a/libcxx/test/std/ranges/range.factories/range.iota.view/size.pass.cpp
+++ b/libcxx/test/std/ranges/range.factories/range.iota.view/size.pass.cpp
@@ -91,7 +91,7 @@ constexpr bool test() {
}
// Make sure iota_view<short, short> works properly. For details,
- // see https://github.com/llvm/llvm-project/issues/67551.
+ // see https://llvm.org/PR67551.
{
static_assert(std::ranges::sized_range<std::ranges::iota_view<short, short>>);
std::ranges::iota_view<short, short> io(10, 20);
diff --git a/libcxx/test/std/ranges/range.req/range.view/enable_view.compile.pass.cpp b/libcxx/test/std/ranges/range.req/range.view/enable_view.compile.pass.cpp
index 202b5bba451c..0643ee6b192b 100644
--- a/libcxx/test/std/ranges/range.req/range.view/enable_view.compile.pass.cpp
+++ b/libcxx/test/std/ranges/range.req/range.view/enable_view.compile.pass.cpp
@@ -146,7 +146,7 @@ static_assert(!std::ranges::enable_view<const PrivateInherit>);
static_assert(!std::ranges::enable_view<volatile PrivateInherit>);
static_assert(!std::ranges::enable_view<const volatile PrivateInherit>);
-// https://github.com/llvm/llvm-project/issues/132577
+// https://llvm.org/PR132577
// enable_view<view_interface<T>> should be false.
static_assert(!std::ranges::enable_view<std::ranges::view_interface<V1>>);
static_assert(!std::ranges::enable_view<const std::ranges::view_interface<V1>>);
diff --git a/libcxx/test/std/ranges/ranges_robust_against_no_unique_address.pass.cpp b/libcxx/test/std/ranges/ranges_robust_against_no_unique_address.pass.cpp
index 06186656f012..505ed2e77ae3 100644
--- a/libcxx/test/std/ranges/ranges_robust_against_no_unique_address.pass.cpp
+++ b/libcxx/test/std/ranges/ranges_robust_against_no_unique_address.pass.cpp
@@ -9,7 +9,7 @@
// UNSUPPORTED: c++03, c++11, c++14, c++17
// Test that views that use __movable_box do not overwrite overlapping subobjects.
-// https://github.com/llvm/llvm-project/issues/70506
+// https://llvm.org/PR70506
#include <cassert>
#include <ranges>
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp
index ac660d8fe994..45a52acab464 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp
@@ -8,8 +8,6 @@
// UNSUPPORTED: no-exceptions
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
// <string>
// size_type max_size() const; // constexpr since C++20
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
index a3b16c8da16c..230852445e92 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
@@ -63,7 +63,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
#if TEST_STD_VER >= 23
{ // Make sure shrink_to_fit never increases capacity
- // See: https://github.com/llvm/llvm-project/issues/95161
+ // See: https://llvm.org/PR95161
std::basic_string<char, std::char_traits<char>, increasing_allocator<char>> s{
"String does not fit in the internal buffer"};
std::size_t capacity = s.capacity();
diff --git a/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
index b0045cb4afbb..c4fd5afe83a4 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
@@ -65,16 +65,6 @@ template <typename T, typename U>
bool operator!=(const poca_alloc<T>& lhs, const poca_alloc<U>& rhs) {
return lhs.imp != rhs.imp;
}
-
-template <class S>
-TEST_CONSTEXPR_CXX20 void test_assign(S& s1, const S& s2) {
- try {
- s1 = s2;
- } catch (std::bad_alloc&) {
- return;
- }
- assert(false);
-}
#endif
template <class S>
@@ -122,7 +112,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s2 == p2);
imp2.deactivate();
- test_assign(s1, s2);
+ try {
+ s1 = s2;
+ assert(false);
+ } catch (std::bad_alloc&) {
+ }
assert(s1 == p1);
assert(s2 == p2);
}
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
index 425a481b7163..8a13f11cf156 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
@@ -6,8 +6,6 @@
//
//===----------------------------------------------------------------------===//
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
// <string>
// basic_string<charT,traits,Allocator>&
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
index 388b9ffd3b16..0f1c7fde4770 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
@@ -120,9 +120,9 @@ constexpr void test(const CharT* x, const CharT* y, const CharT* expected) {
}
// string_view + string&&
{
- // TODO: Remove workaround once https://github.com/llvm/llvm-project/issues/92382 is fixed.
+ // TODO: Remove workaround once https://llvm.org/PR92382 is fixed.
// Create a `basic_string` to workaround clang bug:
- // https://github.com/llvm/llvm-project/issues/92382
+ // https://llvm.org/PR92382
// Comparison between pointers to a string literal and some other object results in constant evaluation failure.
if constexpr (std::same_as<StringViewT<CharT, TraitsT>, std::basic_string_view<CharT, TraitsT>>) {
std::basic_string<CharT, TraitsT, AllocT> st_{x, allocator};
diff --git a/libcxx/test/std/thread/futures/futures.async/thread_create_failure.pass.cpp b/libcxx/test/std/thread/futures/futures.async/thread_create_failure.pass.cpp
index 4e087fd4226d..70009589e985 100644
--- a/libcxx/test/std/thread/futures/futures.async/thread_create_failure.pass.cpp
+++ b/libcxx/test/std/thread/futures/futures.async/thread_create_failure.pass.cpp
@@ -8,7 +8,7 @@
//
// UNSUPPORTED: no-threads, no-exceptions
-// ASan seems to try to create threadsm which obviouly doesn't work in this test.
+// ASan seems to try to create threadsm which obviously doesn't work in this test.
// UNSUPPORTED: asan, hwasan
// UNSUPPORTED: c++03
diff --git a/libcxx/test/std/thread/futures/futures.task/futures.task.members/type.verify.cpp b/libcxx/test/std/thread/futures/futures.task/futures.task.members/type.verify.cpp
index 72171c99a612..7deaffd4d2d7 100644
--- a/libcxx/test/std/thread/futures/futures.task/futures.task.members/type.verify.cpp
+++ b/libcxx/test/std/thread/futures/futures.task/futures.task.members/type.verify.cpp
@@ -12,7 +12,7 @@
// <future>
// Verify that the non-conforming extension packaged_task::result_type is removed.
-// See https://github.com/llvm/llvm-project/issues/112856.
+// See https://llvm.org/PR112856.
#include <future>
diff --git a/libcxx/test/std/thread/thread.jthread/assign.move.pass.cpp b/libcxx/test/std/thread/thread.jthread/assign.move.pass.cpp
index fd5a1705c56a..8527af1344e2 100644
--- a/libcxx/test/std/thread/thread.jthread/assign.move.pass.cpp
+++ b/libcxx/test/std/thread/thread.jthread/assign.move.pass.cpp
@@ -112,7 +112,7 @@ int main(int, char**) {
assert(j1.get_id() == j2Id);
}
- // LWG3788: self-assignement
+ // LWG3788: self-assignment
{
std::jthread j = support::make_test_jthread([] {});
auto oldId = j.get_id();
diff --git a/libcxx/test/std/thread/thread.jthread/join.deadlock.pass.cpp b/libcxx/test/std/thread/thread.jthread/join.deadlock.pass.cpp
index 21fbacde36cb..d71f80296e9b 100644
--- a/libcxx/test/std/thread/thread.jthread/join.deadlock.pass.cpp
+++ b/libcxx/test/std/thread/thread.jthread/join.deadlock.pass.cpp
@@ -10,7 +10,7 @@
// it would dead lock the test
// UNSUPPORTED: windows
-// TSAN bug: https://github.com/llvm/llvm-project/issues/66537
+// TSAN bug: https://llvm.org/PR66537
// UNSUPPORTED: tsan
// UNSUPPORTED: no-threads
diff --git a/libcxx/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp
index ea5b63d2804a..121705f2e3a9 100644
--- a/libcxx/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp
+++ b/libcxx/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp
@@ -8,8 +8,6 @@
// UNSUPPORTED: no-threads
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
// <mutex>
// struct once_flag;
diff --git a/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/cmp.pass.cpp b/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/cmp.pass.cpp
index 7be937aa948c..2ef27ce60fc9 100644
--- a/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/cmp.pass.cpp
+++ b/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/cmp.pass.cpp
@@ -51,7 +51,7 @@ int main(int, char**) {
assert(testOrder(id1, id3, isLess ? std::strong_ordering::less : std::strong_ordering::greater));
#endif
- // Regression tests for https://github.com/llvm/llvm-project/issues/56187
+ // Regression tests for https://llvm.org/PR56187
// libc++ previously declared the comparison operators as hidden friends
// which was non-conforming.
assert(std::operator==(id1, id2));
diff --git a/libcxx/test/std/time/time.duration/time.duration.nonmember/ostream.pass.cpp b/libcxx/test/std/time/time.duration/time.duration.nonmember/ostream.pass.cpp
index a25711fc970c..4e84db9a84d7 100644
--- a/libcxx/test/std/time/time.duration/time.duration.nonmember/ostream.pass.cpp
+++ b/libcxx/test/std/time/time.duration/time.duration.nonmember/ostream.pass.cpp
@@ -215,7 +215,7 @@ static void test_units() {
template <class CharT>
static void test_unsigned_types() {
- // Reported in https://github.com/llvm/llvm-project/issues/96820
+ // Reported in https://llvm.org/PR96820
using namespace std::literals::chrono_literals;
// C locale
diff --git a/libcxx/test/std/time/time.hms/time.hms.nonmembers/ostream.pass.cpp b/libcxx/test/std/time/time.hms/time.hms.nonmembers/ostream.pass.cpp
index 6ee419fc07c0..e281098de55d 100644
--- a/libcxx/test/std/time/time.hms/time.hms.nonmembers/ostream.pass.cpp
+++ b/libcxx/test/std/time/time.hms/time.hms.nonmembers/ostream.pass.cpp
@@ -63,7 +63,7 @@ template <class CharT>
static void test() {
// Note std::atto can't be tested since the ratio conversion from std::atto
// std::chrono::seconds to std::chrono::hours overflows when intmax_t is a
- // 64-bit type. This is a limitiation in the constructor of
+ // 64-bit type. This is a limitation in the constructor of
// std::chrono::hh_mm_ss.
// C locale - integral power of 10 ratios
diff --git a/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp b/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp
index 20918927bf24..973bce8f81d4 100644
--- a/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp
+++ b/libcxx/test/std/time/time.syn/formatter.duration.pass.cpp
@@ -1163,7 +1163,7 @@ static void test_pr62082() {
template <class CharT>
static void test_unsigned_duration() {
- // Reported in https://github.com/llvm/llvm-project/issues/96820
+ // Reported in https://llvm.org/PR96820
using namespace std::literals::chrono_literals;
check(SV("1as"), SV("{}"), std::chrono::duration<unsigned short, std::atto>(1));
diff --git a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.local_time.pass.cpp b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.local_time.pass.cpp
index 76dd8bc746fc..1d0234468f41 100644
--- a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.local_time.pass.cpp
+++ b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.local_time.pass.cpp
@@ -1017,8 +1017,8 @@ static void test_europe_dublin() {
static void test_america_st_johns() {
// A more typical entry,
- // Uses letters both when DST is ative and not and has multiple
- // letters. Uses negetive offsets.
+ // Uses letters both when DST is active and not and has multiple
+ // letters. Uses negative offsets.
// Switches several times between their own and Canadian rules
// Switches the stdoff from -3:30:52 to -3:30 while observing the same rule
diff --git a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
index 1a1705d5ae59..1924af4bd671 100644
--- a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
+++ b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
@@ -34,7 +34,7 @@
// The data in the tests can be validated by using the zdump tool. For
// example
// zdump -v Asia/Hong_Kong
-// show all transistions in the Hong Kong time zone. Or
+// show all transitions in the Hong Kong time zone. Or
// zdump -c1970,1980 -v Asia/Hong_Kong
// shows all transitions in Hong Kong between 1970 and 1980.
@@ -177,7 +177,7 @@ static void test_antarctica_syowa() {
// This change uses an ON field with a day number
//
// There don't seem to be rule-less zones that use last day or a
- // contrained day
+ // constrained day
// Z Antarctica/Syowa 0 - -00 1957 Ja 29
// 3 - +03
@@ -605,8 +605,8 @@ static void test_europe_berlin() {
static void test_america_st_johns() {
// A more typical entry,
- // Uses letters both when DST is ative and not and has multiple
- // letters. Uses negetive offsets.
+ // Uses letters both when DST is active and not and has multiple
+ // letters. Uses negative offsets.
// Switches several times between their own and Canadian rules
// Switches the stdoff from -3:30:52 to -3:30 while observing the same rule
@@ -1036,7 +1036,7 @@ static void test_africa_freetown() {
using namespace std::literals::chrono_literals;
const std::chrono::time_zone* tz = std::chrono::locate_zone("Africa/Freetown");
- // When a continuation has a named rule, the tranisition time determined by
+ // When a continuation has a named rule, the transition time determined by
// the active rule can be wrong. The next continuation may set the clock to an
// earlier time. This is tested for San Luis. This tests the rule is not used
// when the rule is not a named rule.
diff --git a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/to_sys_choose.pass.cpp b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/to_sys_choose.pass.cpp
index 1147c9fadf9a..b2dbdb1bb66b 100644
--- a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/to_sys_choose.pass.cpp
+++ b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/to_sys_choose.pass.cpp
@@ -141,7 +141,7 @@ static void test_ambiguous() {
assert(tz->to_sys(time + 0ms, std::chrono::choose::earliest) == earlier);
assert(tz->to_sys(time + 0s, std::chrono::choose::latest) == later);
- // Test times in the ambigious hour
+ // Test times in the ambiguous hour
assert(tz->to_sys(time + 1s, std::chrono::choose::earliest) == earlier + 1s);
assert(tz->to_sys(time + 1min, std::chrono::choose::latest) == later + 1min);
assert(tz->to_sys(time + 30min, std::chrono::choose::earliest) == earlier + 30min);
diff --git a/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp b/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp
index 497da859265c..96f17b38f862 100644
--- a/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp
+++ b/libcxx/test/std/time/time.zone/time.zone.zonedtime/types.compile.pass.cpp
@@ -58,7 +58,7 @@ static_assert(std::is_copy_assignable_v<std::chrono::zoned_time<std::chrono::day
static_assert(std::is_move_assignable_v<std::chrono::zoned_time<std::chrono::days, int>>);
// Test with a move only type, since the copy constructor is defined, no move
-// constuctor is generated.
+// constructor is generated.
static_assert(!std::is_copy_constructible_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>);
static_assert(!std::is_move_constructible_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>);
static_assert(!std::is_copy_assignable_v<std::chrono::zoned_time< std::chrono::days, std::unique_ptr<int>>>);
diff --git a/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp b/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
index 1135eadbb95f..73b2ad513ead 100644
--- a/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
+++ b/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp
@@ -112,7 +112,7 @@ int main(int, char**) {
"");
}
{
- // Test construction from convertible-to-allocator types (https://github.com/llvm/llvm-project/issues/78754)
+ // Test construction from convertible-to-allocator types (https://llvm.org/PR78754)
typedef std::scoped_allocator_adaptor<A1<int>, A1<int>> A;
A a(A1<char>(4), A1<char>(5));
assert(a.outer_allocator() == A1<int>(4));
diff --git a/libcxx/test/std/utilities/allocator.adaptor/base-is-uglified.compile.pass.cpp b/libcxx/test/std/utilities/allocator.adaptor/base-is-uglified.compile.pass.cpp
index 2581ac079dc5..dc53e2a63277 100644
--- a/libcxx/test/std/utilities/allocator.adaptor/base-is-uglified.compile.pass.cpp
+++ b/libcxx/test/std/utilities/allocator.adaptor/base-is-uglified.compile.pass.cpp
@@ -13,7 +13,7 @@
// This test ensures that we don't use a non-uglified name 'base' in the
// implementation of scoped_allocator_adaptor.
//
-// See https://github.com/llvm/llvm-project/issues/78754.
+// See https://llvm.org/PR78754.
#include <memory>
#include <scoped_allocator>
diff --git a/libcxx/test/std/utilities/charconv/charconv.from.chars/floating_point.pass.cpp b/libcxx/test/std/utilities/charconv/charconv.from.chars/floating_point.pass.cpp
index 6faf0499c4c9..a02c7ac466f0 100644
--- a/libcxx/test/std/utilities/charconv/charconv.from.chars/floating_point.pass.cpp
+++ b/libcxx/test/std/utilities/charconv/charconv.from.chars/floating_point.pass.cpp
@@ -396,7 +396,7 @@ struct test_fixed {
assert(x == F(-0.5));
}
- { // double deciamal point
+ { // double decimal point
const char* s = "1.25.78";
// This number is halfway between two float values.
@@ -405,7 +405,7 @@ struct test_fixed {
assert(r.ptr == s + 4);
assert(x == F(1.25));
}
- { // exponenent no sign
+ { // exponent no sign
const char* s = "1.5e10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::fixed);
@@ -413,7 +413,7 @@ struct test_fixed {
assert(r.ptr == s + 3);
assert(x == F(1.5));
}
- { // exponenent capitalized no sign
+ { // exponent capitalized no sign
const char* s = "1.5E10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::fixed);
@@ -421,7 +421,7 @@ struct test_fixed {
assert(r.ptr == s + 3);
assert(x == F(1.5));
}
- { // exponenent + sign
+ { // exponent + sign
const char* s = "1.5e+10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::fixed);
@@ -429,7 +429,7 @@ struct test_fixed {
assert(r.ptr == s + 3);
assert(x == F(1.5));
}
- { // exponenent - sign
+ { // exponent - sign
const char* s = "1.5e-10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::fixed);
@@ -739,7 +739,7 @@ struct test_scientific {
assert(x == F(1.0));
}
- { // double deciamal point
+ { // double decimal point
const char* s = "1.25e0.78";
// This number is halfway between two float values.
@@ -749,7 +749,7 @@ struct test_scientific {
assert(x == F(1.25));
}
- { // exponenent no sign
+ { // exponent no sign
const char* s = "1.5e10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::scientific);
@@ -757,7 +757,7 @@ struct test_scientific {
assert(r.ptr == s + 6);
assert(x == F(1.5e10));
}
- { // exponenent capitalized no sign
+ { // exponent capitalized no sign
const char* s = "1.5E10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::scientific);
@@ -765,7 +765,7 @@ struct test_scientific {
assert(r.ptr == s + 6);
assert(x == F(1.5e10));
}
- { // exponenent + sign
+ { // exponent + sign
const char* s = "1.5e+10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::scientific);
@@ -773,7 +773,7 @@ struct test_scientific {
assert(r.ptr == s + 7);
assert(x == F(1.5e10));
}
- { // exponenent - sign
+ { // exponent - sign
const char* s = "1.5e-10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::scientific);
@@ -958,7 +958,7 @@ struct test_general {
assert(r.ptr == s + 3);
assert(x == F(-0.5));
}
- { // double deciamal point
+ { // double decimal point
const char* s = "1.25.78";
// This number is halfway between two float values.
@@ -967,7 +967,7 @@ struct test_general {
assert(r.ptr == s + 4);
assert(x == F(1.25));
}
- { // exponenent no sign
+ { // exponent no sign
const char* s = "1.5e10";
r = std::from_chars(s, s + std::strlen(s), x);
@@ -975,7 +975,7 @@ struct test_general {
assert(r.ptr == s + 6);
assert(x == F(1.5e10));
}
- { // exponenent capitalized no sign
+ { // exponent capitalized no sign
const char* s = "1.5E10";
r = std::from_chars(s, s + std::strlen(s), x);
@@ -983,7 +983,7 @@ struct test_general {
assert(r.ptr == s + 6);
assert(x == F(1.5e10));
}
- { // exponenent + sign
+ { // exponent + sign
const char* s = "1.5e+10";
r = std::from_chars(s, s + std::strlen(s), x);
@@ -991,7 +991,7 @@ struct test_general {
assert(r.ptr == s + 7);
assert(x == F(1.5e10));
}
- { // exponenent - sign
+ { // exponent - sign
const char* s = "1.5e-10";
r = std::from_chars(s, s + std::strlen(s), x);
@@ -1278,7 +1278,7 @@ struct test_hex {
assert(r.ptr == s + 3);
assert(x == F(-0x0.5p0));
}
- { // double deciamal point
+ { // double decimal point
const char* s = "1.25.78";
// This number is halfway between two float values.
@@ -1287,7 +1287,7 @@ struct test_hex {
assert(r.ptr == s + 4);
assert(x == F(0x1.25p0));
}
- { // exponenent no sign
+ { // exponent no sign
const char* s = "1.5p10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::hex);
@@ -1295,7 +1295,7 @@ struct test_hex {
assert(r.ptr == s + 6);
assert(x == F(0x1.5p10));
}
- { // exponenent capitalized no sign
+ { // exponent capitalized no sign
const char* s = "1.5P10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::hex);
@@ -1303,7 +1303,7 @@ struct test_hex {
assert(r.ptr == s + 6);
assert(x == F(0x1.5p10));
}
- { // exponenent + sign
+ { // exponent + sign
const char* s = "1.5p+10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::hex);
@@ -1311,7 +1311,7 @@ struct test_hex {
assert(r.ptr == s + 7);
assert(x == F(0x1.5p10));
}
- { // exponenent - sign
+ { // exponent - sign
const char* s = "1.5p-10";
r = std::from_chars(s, s + std::strlen(s), x, std::chars_format::hex);
diff --git a/libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.copy.pass.cpp b/libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.copy.pass.cpp
index 028655412c92..f8975a677674 100644
--- a/libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.copy.pass.cpp
+++ b/libcxx/test/std/utilities/expected/expected.expected/ctor/ctor.copy.pass.cpp
@@ -123,7 +123,7 @@ constexpr bool test() {
{
// TODO: Drop this once AppleClang is upgraded
#ifndef TEST_COMPILER_APPLE_CLANG
- // https://github.com/llvm/llvm-project/issues/92676
+ // https://llvm.org/PR92676
std::expected<Any, int> e1;
auto e2 = e1;
assert(e2.has_value());
diff --git a/libcxx/test/std/utilities/expected/expected.expected/observers/has_value.pass.cpp b/libcxx/test/std/utilities/expected/expected.expected/observers/has_value.pass.cpp
index 6111d7a35113..43ca96eb1156 100644
--- a/libcxx/test/std/utilities/expected/expected.expected/observers/has_value.pass.cpp
+++ b/libcxx/test/std/utilities/expected/expected.expected/observers/has_value.pass.cpp
@@ -56,7 +56,7 @@ constexpr bool test() {
// The other tests use a synthetic struct that clobbers its tail padding
// on construction, making the issue easier to reproduce.
//
- // See https://github.com/llvm/llvm-project/issues/68552 and the linked PR.
+ // See https://llvm.org/PR68552 and the linked PR.
{
auto f1 = []() -> std::expected<std::optional<int>, long> { return 0; };
diff --git a/libcxx/test/std/utilities/expected/types.h b/libcxx/test/std/utilities/expected/types.h
index df73ebdfe495..ff5fc2e4c814 100644
--- a/libcxx/test/std/utilities/expected/types.h
+++ b/libcxx/test/std/utilities/expected/types.h
@@ -157,7 +157,7 @@ struct MoveOnlyErrorType {
// tail padding. With this type we can check that `std::expected` handles
// the case where the "has value" flag is an overlapping subobject correctly.
//
-// See https://github.com/llvm/llvm-project/issues/68552 for details.
+// See https://llvm.org/PR68552 for details.
template <int Constant>
struct TailClobberer {
constexpr TailClobberer() noexcept {
@@ -200,9 +200,8 @@ static_assert(std::is_nothrow_move_constructible_v<TailClobbererNonTrivialMove<0
static_assert(!std::is_nothrow_move_constructible_v<TailClobbererNonTrivialMove<0, false>>);
// The `CheckForInvalidWrites` class recreates situations where other objects
-// may be placed into a `std::expected`'s tail padding (see
-// https://github.com/llvm/llvm-project/issues/70494). With a template
-// parameter `WithPaddedExpected` two cases can be tested:
+// may be placed into a `std::expected`'s tail padding (see https://llvm.org/PR70494).
+// With a template parameter `WithPaddedExpected` two cases can be tested:
//
// 1. The `std::expected<T, E>` itself has padding, because `T`/`E` _don't_
// have tail padding. This is modelled by `CheckForInvalidWrites<true>`
diff --git a/libcxx/test/std/utilities/format/format.functions/bug_81590.compile.pass.cpp b/libcxx/test/std/utilities/format/format.functions/bug_81590.compile.pass.cpp
index c2508fdee092..23dd9fe841b9 100644
--- a/libcxx/test/std/utilities/format/format.functions/bug_81590.compile.pass.cpp
+++ b/libcxx/test/std/utilities/format/format.functions/bug_81590.compile.pass.cpp
@@ -11,7 +11,7 @@
// XFAIL: availability-fp_to_chars-missing
// The sample code is based on the bug report
-// https://github.com/llvm/llvm-project/issues/81590
+// https://llvm.org/PR81590
//
// Tests whether this formatter does not fail to compile due to nested concept
// evaluation.
diff --git a/libcxx/test/std/utilities/format/format.functions/format_tests.h b/libcxx/test/std/utilities/format/format.functions/format_tests.h
index 60abd4ac4e22..4cba83afd429 100644
--- a/libcxx/test/std/utilities/format/format.functions/format_tests.h
+++ b/libcxx/test/std/utilities/format/format.functions/format_tests.h
@@ -3190,7 +3190,7 @@ void format_tests(TestFunction check, ExceptionTest check_exception) {
check(SV("hello 09azAZ!"), SV("hello {}"), data);
}
{
- // https://github.com/llvm/llvm-project/issues/115935
+ // https://llvm.org/PR115935
// Contents after the embedded null character are discarded.
CharT buffer[] = {CharT('a'), CharT('b'), CharT('c'), 0, CharT('d'), CharT('e'), CharT('f'), 0};
check(SV("hello abc"), SV("hello {}"), buffer);
diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.const_ref.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.const_ref.pass.cpp
index 4a2ae963e3bd..4a2ae963e3bd 100644
--- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.const_ref.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.const_ref.pass.cpp
diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.refwrap.pass.cpp
index 3d72459bc5a1..3d72459bc5a1 100644
--- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.refwrap.pass.cpp
diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap_const.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.refwrap_const.pass.cpp
index 1ae22b4ac58e..1ae22b4ac58e 100644
--- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap_const.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/compare.three_way.refwrap.refwrap_const.pass.cpp
diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.const_ref.pass.cpp
index 316ff7c30331..316ff7c30331 100644
--- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.const_ref.pass.cpp
diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.refwrap.pass.cpp
index 70e79d399861..70e79d399861 100644
--- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.refwrap.pass.cpp
diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap_const.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.refwrap_const.pass.cpp
index c68ad5c4aa52..c68ad5c4aa52 100644
--- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap_const.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparisons/equal.refwrap.refwrap_const.pass.cpp
diff --git a/libcxx/test/std/utilities/function.objects/unord.hash/enum.pass.cpp b/libcxx/test/std/utilities/function.objects/unord.hash/enum.pass.cpp
index fd1fbe5f113b..05a19329f909 100644
--- a/libcxx/test/std/utilities/function.objects/unord.hash/enum.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/unord.hash/enum.pass.cpp
@@ -21,6 +21,10 @@
#include "test_macros.h"
+#if TEST_STD_VER >= 11
+# include "poisoned_hash_helper.h"
+#endif
+
enum class Colors { red, orange, yellow, green, blue, indigo, violet };
enum class Cardinals { zero, one, two, three, five=5 };
enum class LongColors : short { red, orange, yellow, green, blue, indigo, violet };
@@ -33,6 +37,12 @@ template <class T>
void
test()
{
+#if TEST_STD_VER >= 11
+ test_hash_disabled<const T>();
+ test_hash_disabled<volatile T>();
+ test_hash_disabled<const volatile T>();
+#endif
+
typedef std::hash<T> H;
#if TEST_STD_VER <= 17
static_assert((std::is_same<typename H::argument_type, T>::value), "");
diff --git a/libcxx/test/std/utilities/function.objects/unord.hash/floating.pass.cpp b/libcxx/test/std/utilities/function.objects/unord.hash/floating.pass.cpp
index b8f85e193dc8..f6c31d068b23 100644
--- a/libcxx/test/std/utilities/function.objects/unord.hash/floating.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/unord.hash/floating.pass.cpp
@@ -27,10 +27,20 @@
#include "test_macros.h"
+#if TEST_STD_VER >= 11
+# include "poisoned_hash_helper.h"
+#endif
+
template <class T>
void
test()
{
+#if TEST_STD_VER >= 11
+ test_hash_disabled<const T>();
+ test_hash_disabled<volatile T>();
+ test_hash_disabled<const volatile T>();
+#endif
+
typedef std::hash<T> H;
#if TEST_STD_VER <= 17
static_assert((std::is_same<typename H::argument_type, T>::value), "");
diff --git a/libcxx/test/std/utilities/function.objects/unord.hash/integral.pass.cpp b/libcxx/test/std/utilities/function.objects/unord.hash/integral.pass.cpp
index 14af7093c1e3..c798b3aa77ea 100644
--- a/libcxx/test/std/utilities/function.objects/unord.hash/integral.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/unord.hash/integral.pass.cpp
@@ -26,10 +26,20 @@
#include "test_macros.h"
+#if TEST_STD_VER >= 11
+# include "poisoned_hash_helper.h"
+#endif
+
template <class T>
void
test()
{
+#if TEST_STD_VER >= 11
+ test_hash_disabled<const T>();
+ test_hash_disabled<volatile T>();
+ test_hash_disabled<const volatile T>();
+#endif
+
typedef std::hash<T> H;
#if TEST_STD_VER <= 17
static_assert((std::is_same<typename H::argument_type, T>::value), "");
diff --git a/libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/uses_allocator_construction_args.pass.cpp b/libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/uses_allocator_construction_args.pass.cpp
index 235a93987fe4..93a445d7c9e0 100644
--- a/libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/uses_allocator_construction_args.pass.cpp
+++ b/libcxx/test/std/utilities/memory/allocator.uses/allocator.uses.construction/uses_allocator_construction_args.pass.cpp
@@ -123,7 +123,7 @@ constexpr void testOne() {
}
{
// Tests for ensuring forward declarations of uses_allocator_construction_args
- // See https://github.com/llvm/llvm-project/issues/66714.
+ // See https://llvm.org/PR66714.
{
using NestedPairType = std::pair<int, std::pair<int, UsesAllocArgT>>;
std::same_as<std::tuple<
diff --git a/libcxx/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp b/libcxx/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp
index 9ed0eeefcff8..d0a8c07b726d 100644
--- a/libcxx/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp
+++ b/libcxx/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp
@@ -153,7 +153,7 @@ constexpr bool test() {
assert(std::to_address(&p11) == &p11);
ASSERT_SAME_TYPE(decltype(std::to_address(&p11)), int(**)());
- // See https://github.com/llvm/llvm-project/issues/67449
+ // See https://llvm.org/PR67449
{
struct S { };
S* p = nullptr;
diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/overload_compare_iterator.h b/libcxx/test/std/utilities/memory/specialized.algorithms/overload_compare_iterator.h
index f3b37292e717..094dd8e683ff 100644
--- a/libcxx/test/std/utilities/memory/specialized.algorithms/overload_compare_iterator.h
+++ b/libcxx/test/std/utilities/memory/specialized.algorithms/overload_compare_iterator.h
@@ -19,7 +19,7 @@
// An iterator type that overloads operator== and operator!= without any constraints, which
// can trip up some algorithms if we compare iterators against types that we're not allowed to.
//
-// See https://github.com/llvm/llvm-project/issues/69334 for details.
+// See https://llvm.org/PR69334 for details.
template <class Iterator>
struct overload_compare_iterator {
static_assert(
diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp
index 36b3aa8955ca..86e08284a03c 100644
--- a/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp
+++ b/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp
@@ -52,10 +52,7 @@ struct VirtualCountedBase {
struct VirtualCountedDerived : VirtualCountedBase {
constexpr VirtualCountedDerived(int& count_ref) : VirtualCountedBase(count_ref) {}
-
- // Without a definition, GCC gives an error when the destructor is invoked in a constexpr context (see
- // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93413).
- constexpr ~VirtualCountedDerived() override {}
+ constexpr ~VirtualCountedDerived() override = default;
};
constexpr bool test() {
diff --git a/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/pr40459.pass.cpp b/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/pr40459.pass.cpp
index 326c2193f592..ee001f060550 100644
--- a/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/pr40459.pass.cpp
+++ b/libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/pr40459.pass.cpp
@@ -13,7 +13,7 @@
// template<class Y> weak_ptr(const weak_ptr<Y>& r);
// template<class Y> weak_ptr(weak_ptr<Y>&& r);
//
-// Regression test for https://github.com/llvm/llvm-project/issues/40459
+// Regression test for https://llvm.org/PR41114
// Verify that these constructors never attempt a derived-to-virtual-base
// conversion on a dangling weak_ptr.
diff --git a/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp b/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp
index b96c9b11e296..804650fde3f3 100644
--- a/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp
@@ -117,12 +117,9 @@ int main(int, char**)
// Non-referencable function type
static_assert((!std::is_convertible<ConstFunction, Function>::value), "");
-// TODO(LLVM-19): Re-enable this once we switch to GCC 14. This is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109680
-#ifndef TEST_COMPILER_GCC
static_assert((!std::is_convertible<ConstFunction, Function*>::value), "");
static_assert((!std::is_convertible<ConstFunction, Function&>::value), "");
static_assert((!std::is_convertible<ConstFunction, Function&&>::value), "");
-#endif
static_assert((!std::is_convertible<Function*, ConstFunction>::value), "");
static_assert((!std::is_convertible<Function&, ConstFunction>::value), "");
static_assert((!std::is_convertible<ConstFunction, ConstFunction>::value), "");
diff --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.compile.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.compile.pass.cpp
index bd7da40daf2b..0836ebb6c5c8 100644
--- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.compile.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.compile.pass.cpp
@@ -95,7 +95,7 @@ void test() {
test<true, char[][2]>();
test<true, char[][2][3]>();
- // Important test case for https://github.com/llvm/llvm-project/issues/95311.
+ // Important test case for https://llvm.org/PR95311.
// Note that the order is important here, we want to instantiate the array
// variants before the non-array ones, otherwise we don't trigger the bug.
{
diff --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
index b7fd0937eb21..a68f3f40e364 100644
--- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
@@ -35,10 +35,10 @@ enum class UnsignedEnumClass : unsigned int {};
struct EmptyStruct {};
struct IncompleteStruct;
-struct NoEligibleTrivialContructor {
- NoEligibleTrivialContructor() {};
- NoEligibleTrivialContructor(const NoEligibleTrivialContructor&) {}
- NoEligibleTrivialContructor(NoEligibleTrivialContructor&&) {}
+struct NoEligibleTrivialConstructor {
+ NoEligibleTrivialConstructor() {};
+ NoEligibleTrivialConstructor(const NoEligibleTrivialConstructor&) {}
+ NoEligibleTrivialConstructor(NoEligibleTrivialConstructor&&) {}
};
struct OnlyDefaultConstructorIsTrivial {
@@ -47,22 +47,22 @@ struct OnlyDefaultConstructorIsTrivial {
OnlyDefaultConstructorIsTrivial(OnlyDefaultConstructorIsTrivial&&) {}
};
-struct AllContstructorsAreTrivial {
- AllContstructorsAreTrivial() = default;
- AllContstructorsAreTrivial(const AllContstructorsAreTrivial&) = default;
- AllContstructorsAreTrivial(AllContstructorsAreTrivial&&) = default;
+struct AllConstructorsAreTrivial {
+ AllConstructorsAreTrivial() = default;
+ AllConstructorsAreTrivial(const AllConstructorsAreTrivial&) = default;
+ AllConstructorsAreTrivial(AllConstructorsAreTrivial&&) = default;
};
-struct InheritedNoEligibleTrivialConstructor : NoEligibleTrivialContructor {
- using NoEligibleTrivialContructor::NoEligibleTrivialContructor;
+struct InheritedNoEligibleTrivialConstructor : NoEligibleTrivialConstructor {
+ using NoEligibleTrivialConstructor::NoEligibleTrivialConstructor;
};
struct InheritedOnlyDefaultConstructorIsTrivial : OnlyDefaultConstructorIsTrivial {
using OnlyDefaultConstructorIsTrivial::OnlyDefaultConstructorIsTrivial;
};
-struct InheritedAllContstructorsAreTrivial : AllContstructorsAreTrivial {
- using AllContstructorsAreTrivial::AllContstructorsAreTrivial;
+struct InheritedAllConstructorsAreTrivial : AllConstructorsAreTrivial {
+ using AllConstructorsAreTrivial::AllConstructorsAreTrivial;
};
struct UserDeclaredDestructor {
@@ -136,7 +136,7 @@ constexpr void test_is_implicit_lifetime() {
test_is_implicit_lifetime<T[94], true>();
}
-struct AritmeticTypesTest {
+struct ArithmeticTypesTest {
template <class T>
constexpr void operator()() {
test_is_implicit_lifetime<T>();
@@ -152,7 +152,7 @@ constexpr bool test() {
test_is_implicit_lifetime<const void, false>();
test_is_implicit_lifetime<volatile void, false>();
- types::for_each(types::arithmetic_types(), AritmeticTypesTest{});
+ types::for_each(types::arithmetic_types(), ArithmeticTypesTest{});
test_is_implicit_lifetime<Enum>();
test_is_implicit_lifetime<SignedEnum>();
@@ -184,17 +184,17 @@ constexpr bool test() {
test_is_implicit_lifetime<UserProvidedDestructor, false>();
- test_is_implicit_lifetime<NoEligibleTrivialContructor, false>();
+ test_is_implicit_lifetime<NoEligibleTrivialConstructor, false>();
test_is_implicit_lifetime<OnlyDefaultConstructorIsTrivial, true>();
- test_is_implicit_lifetime<AllContstructorsAreTrivial, true>();
+ test_is_implicit_lifetime<AllConstructorsAreTrivial, true>();
test_is_implicit_lifetime<InheritedNoEligibleTrivialConstructor, false>();
test_is_implicit_lifetime<InheritedOnlyDefaultConstructorIsTrivial, true>();
- test_is_implicit_lifetime<InheritedAllContstructorsAreTrivial, true>();
+ test_is_implicit_lifetime<InheritedAllConstructorsAreTrivial, true>();
test_is_implicit_lifetime<UserDeletedDestructorInAggregate, true>();
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/gh_101960_internal_ctor.compile.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/gh_101960_internal_ctor.compile.pass.cpp
index 1a1d6f52a5fe..8f332b98c100 100644
--- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/gh_101960_internal_ctor.compile.pass.cpp
+++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/gh_101960_internal_ctor.compile.pass.cpp
@@ -10,7 +10,7 @@
// <optional>
-// Regression test for https://github.com/llvm/llvm-project/issues/101960 where a constructor
+// Regression test for https://llvm.org/PR101960 where a constructor
// of std::optional that should have been private was instead publicly available.
#include <optional>
diff --git a/libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp b/libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp
index d55a0c2abd46..864b5f444fd8 100644
--- a/libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp
+++ b/libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp
@@ -54,7 +54,7 @@ void test_replace_int_p() {
replace_int_p(std::inout_ptr(uPtr, std::move(del)));
assert(*uPtr == 84);
- assert(uPtr.get_deleter().wasMoveInitilized == true);
+ assert(uPtr.get_deleter().wasMoveInitialized == true);
}
// pointer-like ConstructiblePtr
diff --git a/libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp b/libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp
index a78e22f69abc..3186b6c75758 100644
--- a/libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp
+++ b/libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp
@@ -49,7 +49,7 @@ void test_get_int_p() {
get_int_p(std::out_ptr(uPtr, std::move(del)));
assert(*uPtr == 84);
- assert(uPtr.get_deleter().wasMoveInitilized == true);
+ assert(uPtr.get_deleter().wasMoveInitialized == true);
}
// std::shared_ptr
diff --git a/libcxx/test/std/utilities/smartptr/adapt/types.h b/libcxx/test/std/utilities/smartptr/adapt/types.h
index 0da6007ba394..886bb88cbbeb 100644
--- a/libcxx/test/std/utilities/smartptr/adapt/types.h
+++ b/libcxx/test/std/utilities/smartptr/adapt/types.h
@@ -21,12 +21,12 @@ struct MoveOnlyDeleter {
MoveOnlyDeleter() = default;
MoveOnlyDeleter(const MoveOnlyDeleter&) = delete;
MoveOnlyDeleter& operator=(const MoveOnlyDeleter&) = delete;
- MoveOnlyDeleter(MoveOnlyDeleter&&) : wasMoveInitilized{true} {}
+ MoveOnlyDeleter(MoveOnlyDeleter&&) : wasMoveInitialized{true} {}
MoveOnlyDeleter& operator=(MoveOnlyDeleter&&) = default;
void operator()(T* p) const { delete p; }
- bool wasMoveInitilized = false;
+ bool wasMoveInitialized = false;
};
// Custom pointer types.
diff --git a/libcxx/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp
index 4f9cdaeb38c0..ca7df36737bf 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp
@@ -73,7 +73,7 @@ TEST_CONSTEXPR_CXX23 void test_char_pointer_ctor()
assert(v[i] == false);
}
// Verify that this constructor doesn't read over the given bound.
- // See https://github.com/llvm/llvm-project/issues/143684
+ // See https://llvm.org/PR143684
{
const char not_null_terminated[] = {'1', '0', '1', '0', '1', '0', '1', '0', '1', '0'};
std::bitset<N> v(not_null_terminated, 10);
diff --git a/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
index bb7e10afc62e..d1bf5b2c5d99 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
@@ -8,8 +8,6 @@
// constexpr bool operator[](size_t pos) const; // constexpr since C++23
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <bitset>
#include <cassert>
#include <cstddef>
diff --git a/libcxx/test/std/utilities/template.bitset/bitset.members/nonstdmem.uglified.compile.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/nonstdmem.uglified.compile.pass.cpp
index 582eb31647ae..15a379de4a14 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/nonstdmem.uglified.compile.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/nonstdmem.uglified.compile.pass.cpp
@@ -11,10 +11,8 @@
// This test ensures that we don't use a non-uglified name 'base', 'iterator',
// 'const_iterator', and `const_reference` in the implementation of bitset.
//
-// See https://github.com/llvm/llvm-project/issues/111125.
-// See https://github.com/llvm/llvm-project/issues/121618.
-
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
+// See https://llvm.org/PR111125.
+// See https://llvm.org/PR121618.
#include <cstddef>
#include <bitset>
diff --git a/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp
index 4b5adb7141a8..6e7e4312b5da 100644
--- a/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp
+++ b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp
@@ -31,7 +31,7 @@ template<typename ...Ts>
void forward_as_tuple(Ts...) = delete;
}
-// https://github.com/llvm/llvm-project/issues/41034
+// https://llvm.org/PR41689
struct Unconstrained {
int data;
template <typename Arg>
@@ -312,7 +312,7 @@ int main(int, char**)
assert(std::get<0>(t).i == 1);
assert(std::get<0>(t2).i == 1);
}
- // See https://github.com/llvm/llvm-project/issues/41034
+ // See https://llvm.org/PR41689
{
test_tuple_cat_with_unconstrained_constructor();
#if TEST_STD_VER >= 14
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.class.general/equality.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.class.general/equality.pass.cpp
index 6ce851524158..410b0e04a51c 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.class.general/equality.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.class.general/equality.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/assign.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/assign.pass.cpp
index faa832815f7e..8268e2c5d640 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/assign.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/assign.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/copy.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/copy.pass.cpp
index ed7e4299b50a..a862653b9b08 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/copy.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/copy.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/default.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/default.pass.cpp
index e4000a1c15e1..6321fe3bb8c1 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/default.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/default.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/memory_resource_convert.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/memory_resource_convert.pass.cpp
index 886d9dd39a1c..29da3630aa57 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/memory_resource_convert.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/memory_resource_convert.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/other_alloc.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/other_alloc.pass.cpp
index 5c36f5a993ae..ef9962c47254 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/other_alloc.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.ctor/other_alloc.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/equal.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/equal.pass.cpp
index a77ed6fbdaec..43f03d15001e 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/equal.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/equal.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/not_equal.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/not_equal.pass.cpp
index 78e6b70a1aad..5e0b36613053 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/not_equal.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.eq/not_equal.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate.pass.cpp
index b050c8e335f1..31b1606f4ce8 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_bytes.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_bytes.pass.cpp
index cc7882460f01..527ba13f6c7f 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_bytes.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_bytes.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_object.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_object.pass.cpp
index e9da1ace7942..cda3ae6b2f84 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_object.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/allocate_deallocate_object.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair.pass.cpp
index da978151a411..f296a4b0f7b1 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp
index 4cb0151ea923..7bc80b430597 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_rvalue.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_rvalue.pass.cpp
index bb589b525f7f..f1b2b6c07555 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_rvalue.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_rvalue.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_values.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_values.pass.cpp
index f84fac9b5a46..b5e74a225798 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_values.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_values.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair.pass.cpp
index 4f23dfa9e7f6..cdc5398e7d1a 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair_evil.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair_evil.pass.cpp
index 701381fde5ad..b77734c28e12 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair_evil.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_piecewise_pair_evil.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_types.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_types.pass.cpp
index 38b004dc4eb6..a546fcfbe1fc 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_types.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_types.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/deallocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/deallocate.pass.cpp
index 67a6aa18a35c..a980a5d29730 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/deallocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/deallocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/destroy.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/destroy.pass.cpp
index 5bf50f889540..c8b18665346e 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/destroy.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/destroy.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/new_delete_object.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/new_delete_object.pass.cpp
index b3a79eb2b404..9e46128cd714 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/new_delete_object.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/new_delete_object.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/resource.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/resource.pass.cpp
index 22cb72414e97..652a930e5f1d 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/resource.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/resource.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/select_on_container_copy_construction.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/select_on_container_copy_construction.pass.cpp
index ccac1178fe51..5666d698c630 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/select_on_container_copy_construction.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/select_on_container_copy_construction.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop.pass.cpp
index af3b62185621..e5cf9e928153 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <deque>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop2.pass.cpp
index 80e958d43a73..c7a30520f09b 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_deque_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <deque>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_forward_list_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_forward_list_synop.pass.cpp
index 8c1372eb497f..ca16f08c79c6 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_forward_list_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_forward_list_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <forward_list>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop.pass.cpp
index a56c69055cc0..b518521bc4a2 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <list>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop2.pass.cpp
index 8a59e9c1ee76..39936aa9490a 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_list_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <list>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop.pass.cpp
index 6b80432f65cd..6058835d9afe 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <map>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop2.pass.cpp
index 5229805ee931..d127f0f71bb9 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_map_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <map>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_regex_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_regex_synop.pass.cpp
index a86db6b1e3fd..8df303d30c58 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_regex_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_regex_synop.pass.cpp
@@ -8,7 +8,7 @@
// UNSUPPORTED: c++03, c++11, c++14
// UNSUPPORTED: no-localization
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <regex>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop.pass.cpp
index 99ded7c35b7a..60ad57e3ca5b 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <set>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop2.pass.cpp
index ce97e178e9bb..ad8b63760663 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_set_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <set>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop.pass.cpp
index 751994f91ab8..0a2a94121d08 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <string>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop2.pass.cpp
index d27ca9ea7ab9..c86130df5032 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_string_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <string>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop.pass.cpp
index 957c5063c8e8..4244250a3673 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <unordered_map>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop2.pass.cpp
index df9dd55de020..ccb3e1761967 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_map_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <unordered_map>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop.pass.cpp
index 273cffd8a647..228b8bfa5724 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <unordered_set>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop2.pass.cpp
index 510297d72316..1d753087dca0 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_unordered_set_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <unordered_set>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop.pass.cpp
index 121e2bb73443..6b2476758c75 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <vector>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop2.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop2.pass.cpp
index c6126c60dcb0..2f5a5574eb69 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop2.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.aliases/header_vector_synop2.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <vector>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.global/default_resource.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.global/default_resource.pass.cpp
index 26981871c670..9add5244707a 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.global/default_resource.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.global/default_resource.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.pass.cpp
index 7b3107029d4d..b58024f494c8 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.global/null_memory_resource.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.global/null_memory_resource.pass.cpp
index fc8a9e455a4b..2e3da871a9b6 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.global/null_memory_resource.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.global/null_memory_resource.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/copy_move.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/copy_move.pass.cpp
index 8adf6ca9378b..87078d0817ff 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/copy_move.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/copy_move.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/with_default_resource.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/with_default_resource.pass.cpp
index d45a0bcde8a6..cd9e902f52e8 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/with_default_resource.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/with_default_resource.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/without_buffer.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/without_buffer.pass.cpp
index 1d681386987a..215b5b335587 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/without_buffer.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/without_buffer.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_deallocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_deallocate.pass.cpp
index bf025999ea61..333b8fe795e0 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_deallocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_deallocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_exception_safety.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_exception_safety.pass.cpp
index 90ee12186650..5390b8063814 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_exception_safety.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_exception_safety.pass.cpp
@@ -8,7 +8,7 @@
// UNSUPPORTED: c++03, c++11, c++14
// UNSUPPORTED: no-exceptions
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_initial_buffer.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_initial_buffer.pass.cpp
index 918c81033fa3..f1e2b9988d3b 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_initial_buffer.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_initial_buffer.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_zero_sized_buffer.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_zero_sized_buffer.pass.cpp
index e0fb1c463aa2..874a7ee65c5c 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_zero_sized_buffer.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_zero_sized_buffer.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp
index 7892b182297e..ead927d9fc6c 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp
index ad967798747a..95c6b36b71f9 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp
index 73a8a571179d..bd3dd86b2115 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/equality.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/equality.pass.cpp
index 0637a43a6b99..d79a89333d1e 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/equality.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/equality.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/ctor_does_not_allocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/ctor_does_not_allocate.pass.cpp
index 23fd311baecf..c971ac81e100 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/ctor_does_not_allocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/ctor_does_not_allocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/sync_with_default_resource.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/sync_with_default_resource.pass.cpp
index caca759d2ed9..1c2f20b6f3c3 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/sync_with_default_resource.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/sync_with_default_resource.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/unsync_with_default_resource.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/unsync_with_default_resource.pass.cpp
index 4d23a05e5fea..b6499125b784 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/unsync_with_default_resource.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/unsync_with_default_resource.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/equality.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/equality.pass.cpp
index b3988572d891..88e3fa7f855c 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/equality.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/equality.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate.pass.cpp
index 9f5edf28c612..2543be0fba28 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_overaligned_request.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_overaligned_request.pass.cpp
index f3e1e4c026ef..ce39a4fc6a0e 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_overaligned_request.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_overaligned_request.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_reuse_blocks.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_reuse_blocks.pass.cpp
index 9327ef3859a7..a21c8aba314a 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_reuse_blocks.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_reuse_blocks.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_deallocate_matches_allocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_deallocate_matches_allocate.pass.cpp
index f55ab1d1aa5c..6656bbc48dd1 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_deallocate_matches_allocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_deallocate_matches_allocate.pass.cpp
@@ -8,7 +8,7 @@
// UNSUPPORTED: no-exceptions
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate.pass.cpp
index 838658d5536b..3f281205f3a3 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_overaligned_request.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_overaligned_request.pass.cpp
index 5153a54ef3f1..82f75fb44344 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_overaligned_request.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_overaligned_request.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_reuse_blocks.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_reuse_blocks.pass.cpp
index 582bc6edc4e0..be0967354223 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_reuse_blocks.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_reuse_blocks.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_deallocate_matches_allocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_deallocate_matches_allocate.pass.cpp
index a0e86f82e9b2..dacfa950bd1f 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_deallocate_matches_allocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_deallocate_matches_allocate.pass.cpp
@@ -8,7 +8,7 @@
// UNSUPPORTED: no-exceptions
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/construct.verify.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/construct.verify.cpp
index 8889f8d56fb1..00437bd52f7f 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/construct.verify.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/construct.verify.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/equal.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/equal.pass.cpp
index 4fa05c656942..e40d05c7fd03 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/equal.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/equal.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/not_equal.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/not_equal.pass.cpp
index 4a10c759afa1..d2540b1a449d 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/not_equal.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.eq/not_equal.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/private_members.verify.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/private_members.verify.cpp
index 205476cb8bdd..bf21467a7b8c 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/private_members.verify.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/private_members.verify.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/protected_members.verify.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/protected_members.verify.cpp
index 1a503a918d4e..e19d7e93ca35 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/protected_members.verify.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.private/protected_members.verify.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// <memory_resource>
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/allocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/allocate.pass.cpp
index 9c8f9fb9c9a7..7d8b61050dc5 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/allocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/allocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/deallocate.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/deallocate.pass.cpp
index e24f90a298b6..a4f5d617dccd 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/deallocate.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/deallocate.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/dtor.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/dtor.pass.cpp
index 35ea2e4e8722..d4325d16e7cd 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/dtor.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/dtor.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/is_equal.pass.cpp b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/is_equal.pass.cpp
index 5bebb7f028a2..d6ee0b663aaa 100644
--- a/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/is_equal.pass.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/mem.res/mem.res.public/is_equal.pass.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// test_memory_resource requires RTTI for dynamic_cast
diff --git a/libcxx/test/std/utilities/utility/mem.res/nodiscard.verify.cpp b/libcxx/test/std/utilities/utility/mem.res/nodiscard.verify.cpp
index f10616694a54..068218fe1920 100644
--- a/libcxx/test/std/utilities/utility/mem.res/nodiscard.verify.cpp
+++ b/libcxx/test/std/utilities/utility/mem.res/nodiscard.verify.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
-// TODO: Change to XFAIL once https://github.com/llvm/llvm-project/issues/40340 is fixed
+// TODO: Change to XFAIL once https://llvm.org/PR40995 is fixed
// UNSUPPORTED: availability-pmr-missing
// check that functions are marked [[nodiscard]]
diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_like.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_like.pass.cpp
index 3ff416ed5737..135045d831d9 100644
--- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_like.pass.cpp
+++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_like.pass.cpp
@@ -45,7 +45,7 @@ struct std::tuple_element<N, my_ns::MyPairLike> {
using type = int;
};
-// https://github.com/llvm/llvm-project/issues/65620
+// https://llvm.org/PR65620
// This used to be a hard error
static_assert(!std::is_constructible_v<std::pair<int,int>, my_ns::MyPairLike const&>);
diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/pair.incomplete.compile.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/pair.incomplete.compile.pass.cpp
index 16ee000cd90f..2c670d7432ac 100644
--- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/pair.incomplete.compile.pass.cpp
+++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/pair.incomplete.compile.pass.cpp
@@ -9,7 +9,7 @@
// Check that instantiating pair doesn't look up type traits "too early", before
// the contained types have been completed.
//
-// This is a regression test, to prevent a reoccurrance of the issue introduced
+// This is a regression test, to prevent a reoccurrence of the issue introduced
// in 5e1de27f680591a870d78e9952b23f76aed7f456.
#include <utility>
diff --git a/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp b/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
index 6111138726db..6b500a8c5ecf 100644
--- a/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
+++ b/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
@@ -186,7 +186,7 @@ int main(int, char**) {
test_construction_with_repeated_types();
test_vector_bool();
- { // Check that the constraints are evaluated lazily (see https://github.com/llvm/llvm-project/issues/151328)
+ { // Check that the constraints are evaluated lazily (see llvm.org/PR151328)
struct Matcher {
Matcher() {}
Matcher(std::variant<ConvertibleFromAny>) {}
diff --git a/libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp b/libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp
index 8093af0aba58..90320ae518c3 100644
--- a/libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp
+++ b/libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp
@@ -208,7 +208,7 @@ void test_exceptions() {
#endif
}
-// See https://bugs.llvm.org/show_bug.cgi?id=31916
+// See https://llvm.org/PR31916
template <typename ReturnType>
void test_caller_accepts_nonconst() {
struct A {};
diff --git a/libcxx/test/std/utilities/variant/variant.visit/visit_return_type.pass.cpp b/libcxx/test/std/utilities/variant/variant.visit/visit_return_type.pass.cpp
index d26c785c0374..e47911f97210 100644
--- a/libcxx/test/std/utilities/variant/variant.visit/visit_return_type.pass.cpp
+++ b/libcxx/test/std/utilities/variant/variant.visit/visit_return_type.pass.cpp
@@ -349,7 +349,7 @@ void test_exceptions() {
#endif
}
-// See https://bugs.llvm.org/show_bug.cgi?id=31916
+// See https://llvm.org/PR31916
template <typename ReturnType>
void test_caller_accepts_nonconst() {
struct A {};