From a27185de7d418c25aa5718b42b7ce5bf4a71ef63 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 2 May 2025 18:12:56 -0700 Subject: [PATCH 1/6] Update llvm-project. --- llvm-project | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm-project b/llvm-project index 14006c8b5be..79210feb299 160000 --- a/llvm-project +++ b/llvm-project @@ -1 +1 @@ -Subproject commit 14006c8b5be12d24d8af2ff4bf4d152b1a2306f5 +Subproject commit 79210feb2993ff9a79ef11f8a7016a527d4fcf22 From f1790d790f280d0566efb8cfc448d0f5ecffc9e6 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 2 May 2025 18:46:14 -0700 Subject: [PATCH 2/6] Enable passing tests. --- tests/libcxx/expected_results.txt | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 64b389eaf67..f6fd29f0cee 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -45,10 +45,6 @@ std/strings/basic.string/string.capacity/deallocate_size.pass.cpp FAIL # LLVM-122638: [libc++][test] re.regex.construct/bad_backref.pass.cpp assumes non-standard extension to extended regular expressions std/re/re.regex/re.regex.construct/bad_backref.pass.cpp FAIL -# LLVM-132532: [libc++][test] Small fixes for time tests -std/time/time.clock/time.clock.gps/types.compile.pass.cpp:2 FAIL -std/time/time.clock/time.clock.tai/types.compile.pass.cpp:2 FAIL - # Non-Standard regex behavior. # "It seems likely that the test is still non-conforming due to how libc++ handles the 'w' character class." std/re/re.traits/lookup_classname.pass.cpp FAIL @@ -788,9 +784,6 @@ std/containers/sequences/vector/addressof.compile.pass.cpp:2 FAIL # throwing_allocator appears to be totally non-Standard. std/containers/sequences/vector.bool/ctor_exceptions.pass.cpp FAIL -# The test is checking _LIBCPP_HAS_THREADS, which we don't have. -std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp FAIL - # x64 truncation warnings caused by allocators. std/containers/sequences/vector/vector.capacity/reserve_exceptions.pass.cpp:0 SKIPPED std/containers/sequences/vector/vector.capacity/reserve_exceptions.pass.cpp:1 SKIPPED @@ -942,10 +935,6 @@ std/thread/futures/futures.promise/swap.pass.cpp FAIL std/thread/futures/futures.shared_future/dtor.pass.cpp FAIL std/thread/futures/futures.unique_future/dtor.pass.cpp FAIL -# Not analyzed. libc++ seems to have a different opinion about what tuple_size should do. -std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp FAIL -std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_structured_bindings.pass.cpp FAIL - # Not analyzed. Expects implicit deduction guides to SFINAE away when allocators are passed where comparators should be. std/containers/associative/map/map.cons/deduct.pass.cpp FAIL std/containers/associative/multimap/multimap.cons/deduct.pass.cpp FAIL From 7f55e565e2bab515e365fac6467c2947334639a6 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 2 May 2025 18:50:14 -0700 Subject: [PATCH 3/6] flat_set tests were added. --- tests/libcxx/expected_results.txt | 140 ++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index f6fd29f0cee..6a5452fe548 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -411,6 +411,146 @@ std/numerics/numeric.ops/numeric.ops.sat/saturate_cast.pass.cpp FAIL std/numerics/numeric.ops/numeric.ops.sat/sub_sat.compile.pass.cpp FAIL std/numerics/numeric.ops/numeric.ops.sat/sub_sat.pass.cpp FAIL +# P1222R4 +std/containers/container.adaptors/flat.multiset/flat.multiset.capacity/empty.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.capacity/max_size.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.capacity/size.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/alloc.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/assign_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/compare.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/containers.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_alloc.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_assign.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/deduct_pmr.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/deduct.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/deduct.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/default.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/dtor_noexcept.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move_alloc.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move_assign.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/pmr.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/range.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_container.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.erasure/erase_if_exceptions.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.erasure/erase_if.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.iterators/iterator_comparison.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.iterators/iterator_concept_conformance.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.iterators/iterator.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.iterators/range_concept_conformance.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.iterators/reverse_iterator.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/clear.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/emplace.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/erase_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/erase_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/erase_key_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/erase_key.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/extract.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_iter_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_iter_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_range.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_sorted_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/insert_sorted_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/replace.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/swap_free.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.modifiers/swap_member.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.observers/comp.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/contains_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/contains.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/count_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/count.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/equal_range_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/equal_range.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/find_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/find.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/lower_bound_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/lower_bound.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/upper_bound_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/flat.multiset.operations/upper_bound.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/incomplete_type.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/op_compare.pass.cpp FAIL +std/containers/container.adaptors/flat.multiset/types.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.capacity/empty.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.capacity/max_size.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.capacity/size.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/alloc.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/assign_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/compare.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/containers.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/copy_alloc.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/copy.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/deduct_pmr.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/deduct.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/deduct.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/default.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/dtor_noexcept.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/move_alloc.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/move_assign.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/move.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/pmr.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/range.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/sorted_container.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/sorted_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.cons/sorted_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if_exceptions.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.iterators/iterator_comparison.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.iterators/iterator_concept_conformance.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.iterators/iterator.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.iterators/range_concept_conformance.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.iterators/reverse_iterator.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/clear.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/emplace.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_key_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_key.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/extract.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_iter_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_iter_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_range.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_sorted_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_sorted_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/replace.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/swap_free.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.modifiers/swap_member.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.observers/comp.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/contains_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/contains.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/count_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/count.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/equal_range_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/equal_range.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/find_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/find.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/lower_bound_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/lower_bound.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/upper_bound_transparent.pass.cpp FAIL +std/containers/container.adaptors/flat.set/flat.set.operations/upper_bound.pass.cpp FAIL +std/containers/container.adaptors/flat.set/incomplete_type.pass.cpp FAIL +std/containers/container.adaptors/flat.set/op_compare.pass.cpp FAIL +std/containers/container.adaptors/flat.set/types.compile.pass.cpp FAIL +std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp FAIL + # P2255R2 "Type Traits To Detect References Binding To Temporaries" std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp FAIL std/utilities/meta/meta.unary/meta.unary.prop/reference_constructs_from_temporary.pass.cpp FAIL From 447c1368137651e3eb76398085708468e2ee055c Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 2 May 2025 19:30:11 -0700 Subject: [PATCH 4/6] Failures due to LWG-3120 and MSVC warning C4242. --- tests/libcxx/expected_results.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 6a5452fe548..5bc4dfc45b9 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -581,6 +581,9 @@ std/thread/futures/futures.promise/set_value_at_thread_exit_const.pass.cpp FAIL std/thread/futures/futures.promise/set_value_at_thread_exit_void.pass.cpp FAIL std/thread/futures/futures.task/futures.task.members/make_ready_at_thread_exit.pass.cpp FAIL +# LWG-3120 Unclear behavior of monotonic_buffer_resource::release() +std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/release_reset_initial_status.pass.cpp FAIL + # LWG-3343 "Ordering of calls to unlock() and notify_all() in Effects element of notify_all_at_thread_exit() should be reversed" (Open) # libc++ speculatively implements LWG-3343. If we wanted to do the same thing, # we'd need to reverse the order of the _Mtx_unlock() and _Cnd_broadcast() calls in xnotify.cpp. @@ -1537,6 +1540,12 @@ std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:1 # Not analyzed. Emitting easily-suppressed truncation warnings for MSVC, but also compiler errors for MSVC and Clang. std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp FAIL +# Not analyzed. MSVC emits "warning C4242: 'initializing': conversion from 'nasty_char_traits::int_type' to 'char', possible loss of data". +std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp:1 FAIL +std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp:1 FAIL + # *** XFAILS WHICH PASS *** # These tests contain `// XFAIL: msvc` comments, which accurately describe runtime failures for x86 and x64. From e3b011d1d25202c2afee4f12fc9decad656e1fa4 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 2 May 2025 19:31:19 -0700 Subject: [PATCH 5/6] Cleanup: Drop comment about the stranded decade-old WCFB02 (vNext) branch. --- tests/libcxx/expected_results.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 5bc4dfc45b9..662114e5706 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -573,7 +573,6 @@ std/re/re.const/re.matchflag/match_not_eol.pass.cpp FAIL std/re/re.const/re.synopt/syntax_option_type.pass.cpp FAIL # LWG-2532 "Satisfying a promise at thread exit" (Open) -# WCFB02 implements the proposed resolution for this issue std/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp FAIL std/thread/futures/futures.promise/set_lvalue_at_thread_exit.pass.cpp FAIL std/thread/futures/futures.promise/set_rvalue_at_thread_exit.pass.cpp FAIL From 671ec14480b296d56cea97dbf8890855b8863e14 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 2 May 2025 20:24:52 -0700 Subject: [PATCH 6/6] Categorize LLVM-138375. --- tests/libcxx/expected_results.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 662114e5706..92bf94c7df3 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -45,6 +45,12 @@ std/strings/basic.string/string.capacity/deallocate_size.pass.cpp FAIL # LLVM-122638: [libc++][test] re.regex.construct/bad_backref.pass.cpp assumes non-standard extension to extended regular expressions std/re/re.regex/re.regex.construct/bad_backref.pass.cpp FAIL +# LLVM-138375: [libc++][test] Make narrowing in nasty_char_traits::to_char_type more explicit +std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp:1 FAIL +std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp:1 FAIL + # Non-Standard regex behavior. # "It seems likely that the test is still non-conforming due to how libc++ handles the 'w' character class." std/re/re.traits/lookup_classname.pass.cpp FAIL @@ -1539,12 +1545,6 @@ std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:1 # Not analyzed. Emitting easily-suppressed truncation warnings for MSVC, but also compiler errors for MSVC and Clang. std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp FAIL -# Not analyzed. MSVC emits "warning C4242: 'initializing': conversion from 'nasty_char_traits::int_type' to 'char', possible loss of data". -std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp:0 FAIL -std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp:1 FAIL -std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp:0 FAIL -std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp:1 FAIL - # *** XFAILS WHICH PASS *** # These tests contain `// XFAIL: msvc` comments, which accurately describe runtime failures for x86 and x64.