From 9572c02003ebe64552e525bb4ee10a0b23e94218 Mon Sep 17 00:00:00 2001 From: cpplearner Date: Tue, 3 Mar 2026 15:37:57 +0800 Subject: [PATCH 1/3] Categorize some libc++ test failures --- tests/libcxx/expected_results.txt | 71 ++++++++++++++++++------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 971a27c8889..facfa7c441c 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -177,6 +177,9 @@ std/language.support/support.limits/support.limits.general/ranges.version.compil # libc++ is missing various DRs std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp FAIL +# libc++ doesn't implement LWG-2295 "Locale name when the provided Facet is a nullptr" +std/localization/locales/locale/locale.cons/name_construction.pass.cpp FAIL + # libc++ doesn't implement LWG-2584 (LLVM-99976) std/re/re.regex/re.regex.construct/bad_escape.pass.cpp FAIL @@ -442,6 +445,10 @@ std/utilities/meta/meta.unary/meta.unary.prop/reference_constructs_from_temporar std/utilities/meta/meta.unary/meta.unary.prop/reference_converts_from_temporary.pass.cpp:0 FAIL std/utilities/meta/meta.unary/meta.unary.prop/reference_converts_from_temporary.pass.cpp:1 FAIL +# DevCom-10892055 ADL fails to consider the namespace associated with the base class under a specific scenario +std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:0 FAIL +std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:1 FAIL + # *** CLANG COMPILER BUGS *** # LLVM-46207 Clang's tgmath.h interferes with the UCRT's tgmath.h @@ -503,15 +510,6 @@ std/localization/locale.categories/category.monetary/locale.moneypunct.byname/ne std/localization/locale.categories/category.monetary/locale.moneypunct.byname/negative_sign.pass.cpp FAIL std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp FAIL std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp FAIL std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp FAIL # GH-1374: Spaceship CPO wording in [cmp.alg] needs an overhaul @@ -537,6 +535,10 @@ std/input.output/string.streams/stringbuf/stringbuf.members/view.pass.cpp FAIL std/input.output/syncstream/syncbuf/syncstream.syncbuf.cons/dtor.pass.cpp FAIL std/input.output/syncstream/syncbuf/syncstream.syncbuf.members/emit.pass.cpp FAIL +# GH-4273: : lazy_split_view should use _Non_propagating_cache instead of _Defaultabox +std/ranges/range.adaptors/range.lazy.split/ctor.copy_move.pass.cpp FAIL +std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/iter_swap.pass.cpp FAIL + # GH-5393: : What names can and should regex_traits::lookup_collatename() recognize? std/re/re.alg/re.alg.match/awk.pass.cpp FAIL std/re/re.alg/re.alg.match/basic.pass.cpp FAIL @@ -548,6 +550,28 @@ std/re/re.alg/re.alg.search/ecma.pass.cpp FAIL std/re/re.alg/re.alg.search/extended.pass.cpp FAIL std/re/re.traits/lookup_collatename.pass.cpp FAIL +# GH-6128 : do_get_monthname and do_get_weekday do not set eofbit in some cases, but libcxx tests expect them to do +std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp FAIL + +# GH-6129 : time_get::do_get uses the wrong format for %c and %x +# GH-6130 : time_get::do_get doesn't parse a literal % +std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp FAIL + +# GH-6134 : time_put::do_put does not match strftime for the %c and %r specifiers in the "C" locale +std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp FAIL + +# GH-6135 : time_put_byname doesn't encode the output in UTF-8 even if the locale name contains ".UTF-8" +std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp FAIL + # *** VCRUNTIME BUGS *** @@ -714,6 +738,14 @@ std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/indirec # Not analyzed, likely bogus test. constexpr fails with "vector iterators incompatible". std/ranges/range.adaptors/range.join.with/range.join.with.iterator/ctor.default.pass.cpp FAIL +# Non-Standard assumption that current_zone() is affected by the TZ environment variable +std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp FAIL +std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp FAIL + +# LWG-4285 "time_get::do_get_date is problematic even after LWG 461" (Open) +std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp FAIL +std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp FAIL + # *** LIKELY STL BUGS *** # Not analyzed, likely STL bugs. Various assertions. @@ -748,12 +780,6 @@ std/localization/locale.categories/category.monetary/locale.money.put/locale.mon std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_string_en_US.pass.cpp FAIL std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/decimal_point.pass.cpp FAIL std/localization/locale.categories/category.monetary/locale.moneypunct/locale.moneypunct.members/thousands_sep.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname_wide.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_monthname.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_one.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday_wide.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_weekday.pass.cpp FAIL -std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put2.pass.cpp FAIL std/localization/locale.stdcvt/codecvt_utf16_in.pass.cpp FAIL std/localization/locale.stdcvt/codecvt_utf16_length.pass.cpp FAIL std/localization/locale.stdcvt/codecvt_utf16_max_length.pass.cpp FAIL @@ -903,10 +929,6 @@ std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_gte.pass.cpp FAIL std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.comp/op_lte.pass.cpp FAIL -# Not analyzed. error C2280: 'std::ranges::lazy_split_view::lazy_split_view(const std::ranges::lazy_split_view &)': attempting to reference a deleted function -std/ranges/range.adaptors/range.lazy.split/ctor.copy_move.pass.cpp FAIL -std/ranges/range.adaptors/range.lazy.split/range.lazy.split.inner/iter_swap.pass.cpp FAIL - # Not analyzed. # Clang error: non-type template argument is not a constant expression std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_const_move.pass.cpp:2 FAIL @@ -984,9 +1006,6 @@ std/utilities/format/format.tuple/format.pass.cpp FAIL # Not analyzed, unexpected separators. Assertion failed: stream_fr_FR_locale(-1'000'000s) == SV("-1 000 000s") std/time/time.duration/time.duration.nonmember/ostream.pass.cpp FAIL -# Not analyzed. Assertion failed: loc.name() == "*" -std/localization/locales/locale/locale.cons/name_construction.pass.cpp FAIL - # Not analyzed. Blocked by our ctype_base deriving from locale::facet. std/localization/locale.categories/category.numeric/locale.num.get/user_defined_char_type.pass.cpp FAIL @@ -1045,10 +1064,6 @@ std/time/time.zone/time.zone.leap/members/date.pass.cpp FAIL std/time/time.zone/time.zone.leap/members/value.pass.cpp FAIL std/time/time.zone/time.zone.leap/nonmembers/comparison.pass.cpp FAIL -# Not analyzed. Assertion failed: tz->name() == zone -std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp FAIL -std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp FAIL - # Not analyzed. Assertion failed: buffer.pubsetbuf(b, 10) == &buffer std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp FAIL @@ -1083,10 +1098,6 @@ std/containers/sequences/vector/vector.capacity/shrink_to_fit_exceptions.pass.cp std/depr/depr.c.headers/stdalign_h.compile.pass.cpp:0 FAIL std/depr/depr.c.headers/stdalign_h.compile.pass.cpp:1 FAIL -# Not analyzed. Probably an MSVC compiler bug, as it rejects `n | negate | negate` while Clang accepts. -std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:0 FAIL -std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:1 FAIL - # 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 From 3a3f721d72b1da1757501e86d07bd1f66618c828 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 3 Mar 2026 05:21:45 -0800 Subject: [PATCH 2/3] Add internal VSO bug number. --- tests/libcxx/expected_results.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index facfa7c441c..d20bc8c8583 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -445,7 +445,7 @@ std/utilities/meta/meta.unary/meta.unary.prop/reference_constructs_from_temporar std/utilities/meta/meta.unary/meta.unary.prop/reference_converts_from_temporary.pass.cpp:0 FAIL std/utilities/meta/meta.unary/meta.unary.prop/reference_converts_from_temporary.pass.cpp:1 FAIL -# DevCom-10892055 ADL fails to consider the namespace associated with the base class under a specific scenario +# DevCom-10892055 VSO-2453093 ADL fails to consider the namespace associated with the base class under a specific scenario std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:0 FAIL std/ranges/range.adaptors/range.adaptor.object/range_adaptor_closure.pass.cpp:1 FAIL From 7ef8a4c92634ed01f01e41df48d1a796f5573906 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 3 Mar 2026 05:22:02 -0800 Subject: [PATCH 3/3] Hyphenate LWG-461 to improve searchability. --- tests/libcxx/expected_results.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index d20bc8c8583..6469eb15914 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -742,7 +742,7 @@ std/ranges/range.adaptors/range.join.with/range.join.with.iterator/ctor.default. std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp FAIL std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp FAIL -# LWG-4285 "time_get::do_get_date is problematic even after LWG 461" (Open) +# LWG-4285 "time_get::do_get_date is problematic even after LWG-461" (Open) std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp FAIL std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp FAIL