From 9a1d8337ffc1959b8e889ad00b68243c4f6ee9f4 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 18 Aug 2023 01:27:57 +0800 Subject: [PATCH 1/3] Remove workaround for DevCom-1559808 --- stl/inc/algorithm | 6 ------ stl/inc/ranges | 12 ------------ tests/libcxx/expected_results.txt | 4 ---- 3 files changed, 22 deletions(-) diff --git a/stl/inc/algorithm b/stl/inc/algorithm index 29579e712ad..ee4399e6970 100644 --- a/stl/inc/algorithm +++ b/stl/inc/algorithm @@ -8288,13 +8288,7 @@ namespace ranges { } // divide and conquer by quicksort -#if defined(__clang__) || defined(__EDG__) // TRANSITION, DevCom-1559808 auto [_Mid_first, _Mid_last] = _Partition_by_median_guess_common(_First, _Last, _Pred, _Proj); -#else // ^^^ no workaround / workaround vvv - auto _Mid = _Partition_by_median_guess_common(_First, _Last, _Pred, _Proj); - auto _Mid_first = _Mid.begin(); - auto _Mid_last = _Mid.end(); -#endif // TRANSITION, DevCom-1559808 _Ideal = (_Ideal >> 1) + (_Ideal >> 2); // allow 1.5 log2(N) divisions diff --git a/stl/inc/ranges b/stl/inc/ranges index cca384b1fdf..c19ab8e0e0d 100644 --- a/stl/inc/ranges +++ b/stl/inc/ranges @@ -5102,13 +5102,7 @@ namespace ranges { return *this; } -#if defined(__clang__) || defined(__EDG__) // TRANSITION, DevCom-1559808 auto [_Begin, _End] = _RANGES search(subrange{_Current, _Last}, _Parent->_Pattern); -#else // ^^^ no workaround / workaround vvv - auto _Match = _RANGES search(subrange{_Current, _Last}, _Parent->_Pattern); - auto _Begin = _Match.begin(); - auto _End = _Match.end(); -#endif // TRANSITION, DevCom-1559808 if (_Begin != _Last && _RANGES empty(_Parent->_Pattern)) { ++_Begin; ++_End; @@ -5154,13 +5148,7 @@ namespace ranges { constexpr subrange> _Find_next(iterator_t<_Vw> _It) { const auto _Last = _RANGES end(_Range); -#if defined(__clang__) || defined(__EDG__) // TRANSITION, DevCom-1559808 auto [_Begin, _End] = _RANGES search(subrange{_It, _Last}, _Pattern); -#else // ^^^ no workaround / workaround vvv - auto _Match = _RANGES search(subrange{_It, _Last}, _Pattern); - auto _Begin = _Match.begin(); - auto _End = _Match.end(); -#endif // TRANSITION, DevCom-1559808 if (_Begin != _Last && _RANGES empty(_Pattern)) { ++_Begin; ++_End; diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 6ddef1217ad..5efce3bf46a 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -381,10 +381,6 @@ std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp:0 FAIL std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp:0 FAIL std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp:0 FAIL -# DevCom-1559808: (structured bindings for `subrange` in a constant expression) -# Skipped as this sometimes emits "fatal error C1001: Internal compiler error." with a crash dialog. -std/ranges/range.utility/range.subrange/structured_bindings.pass.cpp:0 SKIPPED - # DevCom-1436243 constexpr new initialized array std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset_self.pass.cpp:0 FAIL std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp:0 FAIL From d74010ecd2b61ac8f383e01358854a5b8922ae24 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Fri, 18 Aug 2023 02:13:50 +0800 Subject: [PATCH 2/3] Revert removal in `` --- stl/inc/algorithm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/stl/inc/algorithm b/stl/inc/algorithm index ee4399e6970..29579e712ad 100644 --- a/stl/inc/algorithm +++ b/stl/inc/algorithm @@ -8288,7 +8288,13 @@ namespace ranges { } // divide and conquer by quicksort +#if defined(__clang__) || defined(__EDG__) // TRANSITION, DevCom-1559808 auto [_Mid_first, _Mid_last] = _Partition_by_median_guess_common(_First, _Last, _Pred, _Proj); +#else // ^^^ no workaround / workaround vvv + auto _Mid = _Partition_by_median_guess_common(_First, _Last, _Pred, _Proj); + auto _Mid_first = _Mid.begin(); + auto _Mid_last = _Mid.end(); +#endif // TRANSITION, DevCom-1559808 _Ideal = (_Ideal >> 1) + (_Ideal >> 2); // allow 1.5 log2(N) divisions From 4e8ff2858d406d57660f41cba851e52d3711240d Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Wed, 30 Aug 2023 01:58:34 +0800 Subject: [PATCH 3/3] Mention the remain issue DevCom-10452846 --- stl/inc/algorithm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/inc/algorithm b/stl/inc/algorithm index 29579e712ad..5c4d8b8f01c 100644 --- a/stl/inc/algorithm +++ b/stl/inc/algorithm @@ -8288,13 +8288,13 @@ namespace ranges { } // divide and conquer by quicksort -#if defined(__clang__) || defined(__EDG__) // TRANSITION, DevCom-1559808 +#if defined(__clang__) || defined(__EDG__) // TRANSITION, DevCom-10452846 auto [_Mid_first, _Mid_last] = _Partition_by_median_guess_common(_First, _Last, _Pred, _Proj); #else // ^^^ no workaround / workaround vvv auto _Mid = _Partition_by_median_guess_common(_First, _Last, _Pred, _Proj); auto _Mid_first = _Mid.begin(); auto _Mid_last = _Mid.end(); -#endif // TRANSITION, DevCom-1559808 +#endif // TRANSITION, DevCom-10452846 _Ideal = (_Ideal >> 1) + (_Ideal >> 2); // allow 1.5 log2(N) divisions