From a8caa4c886ade64bbbf8673aec39cf3efd9e578b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Michal?= Date: Fri, 9 Jan 2026 04:50:49 +0100 Subject: [PATCH 1/6] Use iterator arithmetic instead of _STD next and distance on known random access iterators. --- stl/inc/flat_map | 15 +++++++-------- stl/inc/flat_set | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/stl/inc/flat_map b/stl/inc/flat_map index 970fd07e77f..ef8caa883c1 100644 --- a/stl/inc/flat_map +++ b/stl/inc/flat_map @@ -898,10 +898,9 @@ protected: || (is_constructible_v && _Transparent) ); const auto _Key_it = _STD upper_bound(_Data.keys.begin(), _Data.keys.end(), _Key_val, _Pass_key_comp()); - const auto _Index = _RANGES distance(_Data.keys.begin(), _Key_it); + const auto _Index = _Key_it - _Data.keys.begin(); if constexpr (_IsUnique) { - if (_Key_it != _Data.keys.begin() - && !_Key_compare(*_RANGES prev(_Key_it), _STD forward<_OtherKey>(_Key_val))) { + if (_Key_it != _Data.keys.begin() && !_Key_compare(*(_Key_it - 1), _STD forward<_OtherKey>(_Key_val))) { // Previous element is equivalent to key, no insert needed return {this->begin() + (_Index - 1), false}; } @@ -935,7 +934,7 @@ protected: const weak_ordering _Hint_order = [&] { if constexpr (_IsUnique) { if (_Position == _End || _Key_compare(_Key_val, *_Position._Key_it)) { - if (_Position == _Begin || _Key_compare(*_STD prev(_Position._Key_it), _Key_val)) { + if (_Position == _Begin || _Key_compare(*(_Position._Key_it - 1), _Key_val)) { return weak_ordering::equivalent; } else { return weak_ordering::greater; @@ -943,7 +942,7 @@ protected: } } else { if (_Position == _End || !_Key_compare(*_Position._Key_it, _Key_val)) { - if (_Position == _Begin || !_Key_compare(_Key_val, *_STD prev(_Position._Key_it))) { + if (_Position == _Begin || !_Key_compare(_Key_val, *(_Position._Key_it - 1))) { return weak_ordering::equivalent; } else { return weak_ordering::greater; @@ -977,8 +976,8 @@ protected: return _New_position; } } else { - if (_New_position != _Begin && !_Key_compare(*_STD prev(_New_position._Key_it), _Key_val)) { - const auto _It = _STD prev(_New_position); + if (_New_position != _Begin && !_Key_compare(*(_New_position._Key_it - 1), _Key_val)) { + const auto _It = _New_position - 1; if constexpr (_OverwriteIfExists) { *_It._Mapped_it = mapped_type(_STD forward<_MappedArgTypes>(_Args)...); } @@ -1196,7 +1195,7 @@ private: _STD lower_bound(_Self._Data.keys.begin(), _Self._Data.keys.end(), _Key_val, _Self._Pass_key_comp()); const bool _Missing = _First == _STD end(_Self._Data.keys) || _Self._Key_compare(_Key_val, *_First); return pair{_Self._Iterator_from_key_iterator(_First), - _Self._Iterator_from_key_iterator(_Missing ? _First : _STD next(_First))}; + _Self._Iterator_from_key_iterator(_Missing ? _First : _First + 1)}; } else { const auto [_First, _Last] = _STD equal_range(_Self._Data.keys.begin(), _Self._Data.keys.end(), _Key_val, _Self._Pass_key_comp()); diff --git a/stl/inc/flat_set b/stl/inc/flat_set index d860535aae9..1be5d8d6938 100644 --- a/stl/inc/flat_set +++ b/stl/inc/flat_set @@ -699,7 +699,7 @@ private: // In a non-multi container, equal_range can have size at most 1 const auto _First = _STD lower_bound(_Mycont.begin(), _Mycont.end(), _Key_val, _Pass_comp()); const bool _Missing = _First == _STD end(_Mycont) || _Mycomp(_Key_val, *_First); - return pair{_First, _Missing ? _First : _STD next(_First)}; + return pair{_First, _Missing ? _First : _First + 1}; } else { return _STD equal_range(begin(), end(), _Key_val, _Pass_comp()); } From 7b0deec6c98cb3cba3d6ce6af3911ecf35d19257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Michal?= Date: Fri, 9 Jan 2026 04:52:07 +0100 Subject: [PATCH 2/6] Replace free functions begin/end with member functions for known types. --- stl/inc/flat_map | 38 +++++++++++++++++++------------------- stl/inc/flat_set | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/stl/inc/flat_map b/stl/inc/flat_map index ef8caa883c1..2ba556b2238 100644 --- a/stl/inc/flat_map +++ b/stl/inc/flat_map @@ -526,21 +526,21 @@ public: // [container.reqmts] iterators _NODISCARD iterator begin() noexcept { _STL_INTERNAL_STATIC_ASSERT(random_access_iterator); - return iterator{_STD cbegin(_Data.keys), _Data.values.begin()}; + return iterator{_Data.keys.begin(), _Data.values.begin()}; } _NODISCARD const_iterator begin() const noexcept { _STL_INTERNAL_STATIC_ASSERT(random_access_iterator); _STL_INTERNAL_STATIC_ASSERT(convertible_to); - return const_iterator{_STD cbegin(_Data.keys), _Data.values.begin()}; + return const_iterator{_Data.keys.begin(), _Data.values.begin()}; } _NODISCARD iterator end() noexcept { - return iterator{_STD cend(_Data.keys), _Data.values.end()}; + return iterator{_Data.keys.end(), _Data.values.end()}; } _NODISCARD const_iterator end() const noexcept { - return const_iterator{_STD cend(_Data.keys), _Data.values.end()}; + return const_iterator{_Data.keys.end(), _Data.values.end()}; } _NODISCARD reverse_iterator rbegin() noexcept { @@ -560,11 +560,11 @@ public: } _NODISCARD const_iterator cbegin() const noexcept { - return const_iterator{_STD cbegin(_Data.keys), _STD cbegin(_Data.values)}; + return const_iterator{_Data.keys.begin(), _Data.values.begin()}; } _NODISCARD const_iterator cend() const noexcept { - return const_iterator{_STD cend(_Data.keys), _STD cend(_Data.values)}; + return const_iterator{_Data.keys.end(), _Data.values.end()}; } _NODISCARD const_reverse_iterator crbegin() const noexcept { @@ -867,14 +867,14 @@ public: } _NODISCARD friend bool operator==(const _Derived& _Left, const _Derived& _Right) { - return _STD equal(_STD _Get_unwrapped(_STD cbegin(_Left)), _STD _Get_unwrapped(_STD cend(_Left)), - _STD _Get_unwrapped(_STD cbegin(_Right)), _STD _Get_unwrapped(_STD cend(_Right))); + return _STD equal(_STD _Get_unwrapped(_Left.cbegin()), _STD _Get_unwrapped(_Left.cend()), + _STD _Get_unwrapped(_Right.cbegin()), _STD _Get_unwrapped(_Right.cend())); } _NODISCARD friend auto operator<=>(const _Derived& _Left, const _Derived& _Right) { - return _STD lexicographical_compare_three_way(_STD _Get_unwrapped(_STD cbegin(_Left)), - _STD _Get_unwrapped(_STD cend(_Left)), _STD _Get_unwrapped(_STD cbegin(_Right)), - _STD _Get_unwrapped(_STD cend(_Right)), _Synth_three_way{}); + return _STD lexicographical_compare_three_way(_STD _Get_unwrapped(_Left.cbegin()), + _STD _Get_unwrapped(_Left.cend()), _STD _Get_unwrapped(_Right.cbegin()), _STD _Get_unwrapped(_Right.cend()), + _Synth_three_way{}); } friend void swap(_Derived& _Left, _Derived& _Right) noexcept(noexcept(_Left.swap(_Right))) { @@ -909,7 +909,7 @@ protected: // Need to insert key_type _Key_to_insert(_STD forward<_OtherKey>(_Key_val)); mapped_type _Mapped_to_insert(_STD forward<_MappedArgTypes>(_Mapped_args)...); - _Insert_exact(_STD cbegin(*this) + _Index, _STD move(_Key_to_insert), _STD move(_Mapped_to_insert)); + _Insert_exact(this->cbegin() + _Index, _STD move(_Key_to_insert), _STD move(_Mapped_to_insert)); if constexpr (_IsUnique) { return {this->begin() + _Index, true}; @@ -964,8 +964,8 @@ protected: const auto _New_position = _Iterator_from_key_iterator( _Hint_order == weak_ordering::less - ? _STD lower_bound(_Position._Key_it, _STD cend(_Data.keys), _Key_val, _Pass_key_comp()) - : _STD upper_bound(_STD cbegin(_Data.keys), _Position._Key_it, _Key_val, _Pass_key_comp())); + ? _STD lower_bound(_Position._Key_it, _Data.keys.cend(), _Key_val, _Pass_key_comp()) + : _STD upper_bound(_Data.keys.cbegin(), _Position._Key_it, _Key_val, _Pass_key_comp())); if constexpr (_IsUnique) { if (_Hint_order == weak_ordering::less) { @@ -1072,9 +1072,9 @@ private: const auto _Num_sorted = _RANGES is_sorted_until(_Data.keys, _Pass_key_comp()) - _Data.keys.begin(); auto _View = _View_to_mutate(); - const auto _Begin_unsorted_values = _STD begin(_View) + _Num_sorted; + const auto _Begin_unsorted_values = _View.begin() + _Num_sorted; - _RANGES sort(_Begin_unsorted_values, _STD end(_View), value_compare{_Key_compare}); + _RANGES sort(_Begin_unsorted_values, _View.end(), value_compare{_Key_compare}); _RANGES inplace_merge(_View, _Begin_unsorted_values, value_compare{_Key_compare}); _Erase_dupes_if_not_multi(); @@ -1119,7 +1119,7 @@ private: // Sort the newly inserted elements auto _Sorted_view = _View_to_mutate(); if constexpr (_NeedSorting) { - _RANGES sort(_STD begin(_Sorted_view) + _Old_distance, _STD end(_Sorted_view), value_compare{_Key_compare}); + _RANGES sort(_Sorted_view.begin() + _Old_distance, _Sorted_view.end(), value_compare{_Key_compare}); } else { _STL_ASSERT(_Is_sorted_and_unique( _Data.keys.begin() + static_cast(_Old_distance), @@ -1193,7 +1193,7 @@ private: // In a non-multi container, equal_range can have size at most 1 const auto _First = _STD lower_bound(_Self._Data.keys.begin(), _Self._Data.keys.end(), _Key_val, _Self._Pass_key_comp()); - const bool _Missing = _First == _STD end(_Self._Data.keys) || _Self._Key_compare(_Key_val, *_First); + const bool _Missing = _First == _Self._Data.keys.end() || _Self._Key_compare(_Key_val, *_First); return pair{_Self._Iterator_from_key_iterator(_First), _Self._Iterator_from_key_iterator(_Missing ? _First : _First + 1)}; } else { @@ -1206,7 +1206,7 @@ private: template _NODISCARD conditional_t, const_iterator, iterator> _Iterator_from_key_iterator( this _SelfTy& _Self, const key_container_type::const_iterator& _Iter) { - const difference_type _Offset = _Iter - _STD cbegin(_Self._Data.keys); + const difference_type _Offset = _Iter - _Self._Data.keys.cbegin(); return _Self.begin() + _Offset; } }; diff --git a/stl/inc/flat_set b/stl/inc/flat_set index 1be5d8d6938..98bffdb3a39 100644 --- a/stl/inc/flat_set +++ b/stl/inc/flat_set @@ -698,7 +698,7 @@ private: if constexpr (_IsUnique && is_same_v<_KeyTy, key_type>) { // Optimization restricted due to GH-5992 // In a non-multi container, equal_range can have size at most 1 const auto _First = _STD lower_bound(_Mycont.begin(), _Mycont.end(), _Key_val, _Pass_comp()); - const bool _Missing = _First == _STD end(_Mycont) || _Mycomp(_Key_val, *_First); + const bool _Missing = _First == _Mycont.end() || _Mycomp(_Key_val, *_First); return pair{_First, _Missing ? _First : _First + 1}; } else { return _STD equal_range(begin(), end(), _Key_val, _Pass_comp()); From 74481f6eca3fcd5df0f7a51261599d49ff0204e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20Michal?= Date: Fri, 9 Jan 2026 13:51:23 +0100 Subject: [PATCH 3/6] FAIL some libcxx tests that use MinSequenceContainer, which is missing cend() member function --- tests/libcxx/expected_results.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 7911c54a3fc..5b3220c7379 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -204,6 +204,19 @@ std/containers/views/mdspan/layout_right/ctor.layout_stride.pass.cpp FAIL # If any feature-test macro test is failing, this consolidated test will also fail. std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp FAIL +# Test uses MinSequenceContainer that does not provide `cend()` member function (LLVM-175114) +std/containers/container.adaptors/flat.map/flat.map.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_transparent.pass.cpp:2 FAIL + # *** INTERACTIONS WITH MSVC THAT UPSTREAM LIKELY WON'T FIX *** # These tests set an allocator with a max_size() too small to default construct an unordered container From 29bc96974e98cc44be8873400d521d69d5ca0792 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Sun, 11 Jan 2026 13:24:31 -0800 Subject: [PATCH 4/6] Sort LLVM-175114 with other reported issues/PRs. --- tests/libcxx/expected_results.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 5b3220c7379..760a9ecb9a4 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -61,6 +61,19 @@ std/language.support/support.exception/except.nested/ctor_default.pass.cpp:2 SKI # SKIPPED because this is ARM64EC-specific. std/language.support/support.coroutines/coroutine.handle/coroutine.handle.noop/noop_coroutine.pass.cpp:2 SKIPPED +# LLVM-175114: Test uses MinSequenceContainer that does not provide `cend()` member function +std/containers/container.adaptors/flat.map/flat.map.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_transparent.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 @@ -204,19 +217,6 @@ std/containers/views/mdspan/layout_right/ctor.layout_stride.pass.cpp FAIL # If any feature-test macro test is failing, this consolidated test will also fail. std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp FAIL -# Test uses MinSequenceContainer that does not provide `cend()` member function (LLVM-175114) -std/containers/container.adaptors/flat.map/flat.map.modifiers/emplace_hint.pass.cpp FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_cv.pass.cpp FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_rv.pass.cpp FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign.pass.cpp FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign_transparent.pass.cpp:2 FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace.pass.cpp FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace_transparent.pass.cpp:2 FAIL -std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/emplace_hint.pass.cpp FAIL -std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_cv.pass.cpp FAIL -std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_rv.pass.cpp FAIL -std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_transparent.pass.cpp:2 FAIL - # *** INTERACTIONS WITH MSVC THAT UPSTREAM LIKELY WON'T FIX *** # These tests set an allocator with a max_size() too small to default construct an unordered container From 2d9fa86f9b0c5a1bfa4f451b63115d430f0823e9 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Sun, 11 Jan 2026 13:34:28 -0800 Subject: [PATCH 5/6] Preserve cbegin/cend. --- stl/inc/flat_map | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/stl/inc/flat_map b/stl/inc/flat_map index 2ba556b2238..24e84ffecfb 100644 --- a/stl/inc/flat_map +++ b/stl/inc/flat_map @@ -526,21 +526,21 @@ public: // [container.reqmts] iterators _NODISCARD iterator begin() noexcept { _STL_INTERNAL_STATIC_ASSERT(random_access_iterator); - return iterator{_Data.keys.begin(), _Data.values.begin()}; + return iterator{_Data.keys.cbegin(), _Data.values.begin()}; } _NODISCARD const_iterator begin() const noexcept { _STL_INTERNAL_STATIC_ASSERT(random_access_iterator); _STL_INTERNAL_STATIC_ASSERT(convertible_to); - return const_iterator{_Data.keys.begin(), _Data.values.begin()}; + return const_iterator{_Data.keys.cbegin(), _Data.values.begin()}; } _NODISCARD iterator end() noexcept { - return iterator{_Data.keys.end(), _Data.values.end()}; + return iterator{_Data.keys.cend(), _Data.values.end()}; } _NODISCARD const_iterator end() const noexcept { - return const_iterator{_Data.keys.end(), _Data.values.end()}; + return const_iterator{_Data.keys.cend(), _Data.values.end()}; } _NODISCARD reverse_iterator rbegin() noexcept { @@ -560,11 +560,11 @@ public: } _NODISCARD const_iterator cbegin() const noexcept { - return const_iterator{_Data.keys.begin(), _Data.values.begin()}; + return const_iterator{_Data.keys.cbegin(), _Data.values.cbegin()}; } _NODISCARD const_iterator cend() const noexcept { - return const_iterator{_Data.keys.end(), _Data.values.end()}; + return const_iterator{_Data.keys.cend(), _Data.values.cend()}; } _NODISCARD const_reverse_iterator crbegin() const noexcept { From 4867dab2b250c9d87ed1c960f808b213c938d1de Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Sun, 11 Jan 2026 13:42:57 -0800 Subject: [PATCH 6/6] LLVM-175114 blocks many more tests. --- tests/libcxx/expected_results.txt | 49 +++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 760a9ecb9a4..ad503291f99 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -62,17 +62,62 @@ std/language.support/support.exception/except.nested/ctor_default.pass.cpp:2 SKI std/language.support/support.coroutines/coroutine.handle/coroutine.handle.noop/noop_coroutine.pass.cpp:2 SKIPPED # LLVM-175114: Test uses MinSequenceContainer that does not provide `cend()` member function +std/containers/container.adaptors/flat.map/flat.map.access/at_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.access/at.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.cons/assign_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.cons/iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.cons/range.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.cons/sorted_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.iterators/iterator_comparison.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.iterators/iterator.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.iterators/range_concept_conformance.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.iterators/reverse_iterator.pass.cpp FAIL std/containers/container.adaptors/flat.map/flat.map.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_key_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_key.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_cv.pass.cpp FAIL std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_cv.pass.cpp FAIL std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_iter_rv.pass.cpp FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign.pass.cpp FAIL std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign_transparent.pass.cpp:2 FAIL -std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_or_assign.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_range.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_rv.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_sorted_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/insert_sorted_iter_iter.pass.cpp FAIL std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.modifiers/try_emplace.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.operations/find_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.map/flat.map.operations/find.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.operations/lower_bound.pass.cpp FAIL +std/containers/container.adaptors/flat.map/flat.map.operations/upper_bound.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.cons/assign_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.cons/iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.cons/range.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/iterator_comparison.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/iterator.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/range_concept_conformance.compile.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.iterators/reverse_iterator.pass.cpp FAIL std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/emplace_hint.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_iter_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_iter.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_key_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_key.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_initializer_list.pass.cpp FAIL std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_cv.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_iter.pass.cpp:2 FAIL std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_iter_rv.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_range.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_rv.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_sorted_initializer_list.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_sorted_iter_iter.pass.cpp FAIL std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/insert_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.operations/find_transparent.pass.cpp:2 FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.operations/find.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.operations/lower_bound.pass.cpp FAIL +std/containers/container.adaptors/flat.multimap/flat.multimap.operations/upper_bound.pass.cpp FAIL # Non-Standard regex behavior. # "It seems likely that the test is still non-conforming due to how libc++ handles the 'w' character class."