From 76dd261fe89e71906f1ac64971876c5fc2078723 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 28 Mar 2022 11:58:12 -0700 Subject: [PATCH 1/8] Change FAIL to SKIPPED to avoid unexpected passes with set_environment. --- tests/libcxx/expected_results.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index d09076833f0..89a8a7ccab5 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -932,13 +932,13 @@ std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp FAIL std/containers/sequences/vector/vector.cons/deduct.pass.cpp FAIL # Not yet analyzed. Seems to force a sign conversion error? -std/iterators/iterator.primitives/iterator.operations/advance.pass.cpp FAIL +std/iterators/iterator.primitives/iterator.operations/advance.pass.cpp SKIPPED # Not yet analyzed. Maybe Clang over-eagerly instantiating noexcept-specifier? std/ranges/range.access/empty.pass.cpp:1 FAIL std/ranges/range.access/size.pass.cpp:1 FAIL std/ranges/range.access/ssize.pass.cpp:1 FAIL -std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp:1 FAIL +std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp:1 SKIPPED # *** XFAILs WHICH PASS *** # Nothing here! :-) From efecd2141c592cc6e2d03ca34b9fcd30cae99fd2 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 28 Mar 2022 12:01:43 -0700 Subject: [PATCH 2/8] Update GitHub Actions. --- .github/workflows/update-status-chart.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-status-chart.yml b/.github/workflows/update-status-chart.yml index 0986a0cf19c..37e7f5db180 100644 --- a/.github/workflows/update-status-chart.yml +++ b/.github/workflows/update-status-chart.yml @@ -12,13 +12,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout gh-pages - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: gh-pages - name: Setup Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: - node-version: ">=17.5.0" + node-version: ">=17.8.0" - name: Install Packages run: | npm ci From 28c71f76b2bd6407ecf2ca9d19719f3b476b04b8 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 28 Mar 2022 12:04:35 -0700 Subject: [PATCH 3/8] Remove variant's workaround for DevCom-1004719. --- stl/inc/variant | 1 - 1 file changed, 1 deletion(-) diff --git a/stl/inc/variant b/stl/inc/variant index 2d69df564e4..c67a0c564ff 100644 --- a/stl/inc/variant +++ b/stl/inc/variant @@ -1472,7 +1472,6 @@ struct _Variant_dispatcher> { template _NODISCARD static constexpr _Ret _Dispatch2(_Callable&& _Obj, _Types&&... _Args) { if constexpr (_Any_valueless) { - ((void) _Args, ...); // TRANSITION, DevCom-1004719 _Throw_bad_variant_access(); } #if _HAS_CXX20 From 409635d3f6b26d5e62a3a250f2264b599cd2a735 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 28 Mar 2022 12:07:06 -0700 Subject: [PATCH 4/8] These classes had implicit `private` access control. --- stl/inc/codecvt | 1 + stl/inc/future | 7 +++++++ stl/inc/shared_mutex | 1 + stl/inc/vector | 1 + stl/inc/xmemory | 1 + 5 files changed, 11 insertions(+) diff --git a/stl/inc/codecvt b/stl/inc/codecvt index 7883ed2d9a5..69ad9412000 100644 --- a/stl/inc/codecvt +++ b/stl/inc/codecvt @@ -216,6 +216,7 @@ protected: template class _CXX17_DEPRECATE_CODECVT_HEADER codecvt_utf16 : public codecvt<_Elem, char, _Statype> { // facet for converting between _Elem and UTF-16 multibyte sequences +private: enum { _Bytes_per_word = 2 }; public: diff --git a/stl/inc/future b/stl/inc/future index 84f0a312c32..f1f15c90944 100644 --- a/stl/inc/future +++ b/stl/inc/future @@ -884,6 +884,7 @@ class shared_future; template class future : public _State_manager<_Ty> { // class that defines a non-copyable asynchronous return object that holds a value +private: using _Mybase = _State_manager<_Ty>; public: @@ -920,6 +921,7 @@ public: template class future<_Ty&> : public _State_manager<_Ty*> { // class that defines a non-copyable asynchronous return object that holds a reference +private: using _Mybase = _State_manager<_Ty*>; public: @@ -953,6 +955,7 @@ public: template <> class future : public _State_manager { // class that defines a non-copyable asynchronous return object that does not hold a value +private: using _Mybase = _State_manager; public: @@ -984,6 +987,7 @@ public: template class shared_future : public _State_manager<_Ty> { // class that defines a copyable asynchronous return object that holds a value +private: using _Mybase = _State_manager<_Ty>; public: @@ -1019,6 +1023,7 @@ public: template class shared_future<_Ty&> : public _State_manager<_Ty*> { // class that defines a copyable asynchronous return object that holds a reference +private: using _Mybase = _State_manager<_Ty*>; public: @@ -1051,6 +1056,7 @@ public: template <> class shared_future : public _State_manager { // class that defines a copyable asynchronous return object that does not hold a value +private: using _Mybase = _State_manager; public: @@ -1473,6 +1479,7 @@ class _Fake_no_copy_callable_adapter { // std::function, which requires that things be copyable. We can't fix this in an // update, so this adapter turns copies into terminate(). When VSO-153581 is // fixed, remove this adapter. +private: using _Storaget = tuple...>; public: diff --git a/stl/inc/shared_mutex b/stl/inc/shared_mutex index 87b629d7389..583687c97bb 100644 --- a/stl/inc/shared_mutex +++ b/stl/inc/shared_mutex @@ -74,6 +74,7 @@ private: // shared_timed_mutex is not supported under /clr #ifndef _M_CEE class shared_timed_mutex { // class for mutual exclusion shared across threads +private: using _Read_cnt_t = unsigned int; static constexpr _Read_cnt_t _Max_readers = static_cast<_Read_cnt_t>(-1); diff --git a/stl/inc/vector b/stl/inc/vector index f3bc6b6b941..29e592a755a 100644 --- a/stl/inc/vector +++ b/stl/inc/vector @@ -2246,6 +2246,7 @@ public: template class _Vb_reference : public _Vb_iter_base<_Alvbase_wrapped> { // reference to a bit within a base word +private: using _Mybase = _Vb_iter_base<_Alvbase_wrapped>; using _Mycont = typename _Mybase::_Mycont; using _Difference_type = typename _Mybase::_Difference_type; diff --git a/stl/inc/xmemory b/stl/inc/xmemory index 9e8f84edf5b..f0ee2c68b43 100644 --- a/stl/inc/xmemory +++ b/stl/inc/xmemory @@ -1639,6 +1639,7 @@ namespace ranges { template class _NODISCARD _Uninitialized_backout_al { // struct to undo partially constructed ranges in _Uninitialized_xxx_al algorithms +private: using pointer = _Alloc_ptr_t<_Alloc>; public: From ddc2d0bdd4140cb9598bf136f5aeb9b0f55b4963 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 28 Mar 2022 12:10:18 -0700 Subject: [PATCH 5/8] Repeated access specifiers. --- stl/inc/sstream | 1 - stl/inc/xtree | 1 - 2 files changed, 2 deletions(-) diff --git a/stl/inc/sstream b/stl/inc/sstream index 6fb8a9b5b25..7f10339866d 100644 --- a/stl/inc/sstream +++ b/stl/inc/sstream @@ -420,7 +420,6 @@ protected: return pos_type(_Off); } -protected: void _Init(const _Elem* _Ptr, _Mysize_type _Count, int _State) { // initialize buffer to [_Ptr, _Ptr + _Count), set state _State &= ~_From_rvalue; diff --git a/stl/inc/xtree b/stl/inc/xtree index 9c32af9c412..106ab11eeae 100644 --- a/stl/inc/xtree +++ b/stl/inc/xtree @@ -933,7 +933,6 @@ public: _Swap_val_excluding_comp(_Right); } -public: _Tree& operator=(_Tree&& _Right) noexcept( _Choose_pocma_v<_Alnode> == _Pocma_values::_Equal_allocators && is_nothrow_move_assignable_v) { if (this == _STD addressof(_Right)) { From a7daeb1dbfd4679f050abcedb1d8c67f64f78cd9 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 28 Mar 2022 12:13:52 -0700 Subject: [PATCH 6/8] Use _STL_INTERNAL_STATIC_ASSERT in charconv. --- stl/inc/charconv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/inc/charconv b/stl/inc/charconv index 608f01688ea..f33c302a142 100644 --- a/stl/inc/charconv +++ b/stl/inc/charconv @@ -31,7 +31,7 @@ _STL_DISABLE_CLANG_WARNINGS _STD_BEGIN inline constexpr char _Charconv_digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; -static_assert(_STD size(_Charconv_digits) == 36); +_STL_INTERNAL_STATIC_ASSERT(_STD size(_Charconv_digits) == 36); template _NODISCARD to_chars_result _Integer_to_chars( @@ -226,7 +226,7 @@ _NODISCARD inline unsigned char _Digit_from_char(const char _Ch) noexcept { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}; - static_assert(_STD size(_Digit_from_byte) == 256); + _STL_INTERNAL_STATIC_ASSERT(_STD size(_Digit_from_byte) == 256); return _Digit_from_byte[static_cast(_Ch)]; } From 52656f9a5159cc81564b7dcb0e97018950903bbf Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 28 Mar 2022 12:30:24 -0700 Subject: [PATCH 7/8] Comment the undefs. --- stl/inc/cwctype | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stl/inc/cwctype b/stl/inc/cwctype index cfcbe9040ef..310125edc9f 100644 --- a/stl/inc/cwctype +++ b/stl/inc/cwctype @@ -18,7 +18,7 @@ _STL_DISABLE_CLANG_WARNINGS #pragma push_macro("new") #undef new -// remove any (improper) macro overrides +// TRANSITION, /clr:pure (see corecrt_wctype.h): remove any (improper) macro overrides #undef iswalnum #undef iswalpha #undef iswblank From 53eaa6b982ac3b6462342e6b8e34c817a7f94b42 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 1 Apr 2022 17:22:33 -0700 Subject: [PATCH 8/8] Restore variant workaround with new bug number. --- stl/inc/variant | 1 + 1 file changed, 1 insertion(+) diff --git a/stl/inc/variant b/stl/inc/variant index c67a0c564ff..897dc3fb150 100644 --- a/stl/inc/variant +++ b/stl/inc/variant @@ -1472,6 +1472,7 @@ struct _Variant_dispatcher> { template _NODISCARD static constexpr _Ret _Dispatch2(_Callable&& _Obj, _Types&&... _Args) { if constexpr (_Any_valueless) { + ((void) _Args, ...); // TRANSITION, VSO-1513409 _Throw_bad_variant_access(); } #if _HAS_CXX20