From 1b47e4df710ddcbe7aefbbd9a0e41092ad0e3c67 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Fri, 11 Aug 2023 11:02:51 +0300 Subject: [PATCH 1/2] Update `#else` transition comment Towards #351. I'm not sure which is really TRANSITION, so I want this reviewed separately. --- stl/src/excptptr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/src/excptptr.cpp b/stl/src/excptptr.cpp index 929bfff7eb5..c0eab29c12d 100644 --- a/stl/src/excptptr.cpp +++ b/stl/src/excptptr.cpp @@ -67,7 +67,7 @@ namespace { [[nodiscard]] _Ty& _Immortalize() noexcept { return _Immortalize_impl<_Ty>._Storage; } -#else // choose immortalize strategy +#else // ^^^ !defined(_M_CEE) / defined(_M_CEE), TRANSITION, VSO-1153256 vvv template int __stdcall _Immortalize_impl(void*, void* _Storage_ptr, void**) noexcept { // adapt True Placement New to _Execute_once @@ -86,7 +86,7 @@ namespace { return reinterpret_cast<_Ty&>(_Storage); } -#endif // _M_CEE_PURE +#endif // ^^^ !defined(_M_CEE_PURE) && defined(_M_CEE), TRANSITION, VSO-1153256 ^^^ void _PopulateCppExceptionRecord( _EXCEPTION_RECORD& _Record, const void* const _PExcept, ThrowInfo* _PThrow) noexcept { From 29ccdeb509454750fece4b10a9570ebbe9469128 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Fri, 11 Aug 2023 23:47:53 +0300 Subject: [PATCH 2/2] Casey's suggestion and one more occurrence --- stl/inc/system_error | 6 +++--- stl/src/excptptr.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/stl/inc/system_error b/stl/inc/system_error index 18ee8527ced..096447c7c10 100644 --- a/stl/inc/system_error +++ b/stl/inc/system_error @@ -654,7 +654,7 @@ _NODISCARD const _Ty& _Immortalize_memcpy_image() noexcept { [[_Clang::__require_constant_initialization__]] static _Ty _Static; return _Static; } -#elif !defined(_M_CEE) // TRANSITION, VSO-1153256 +#elif !defined(_M_CEE) template struct _Constexpr_immortalize_impl { union { @@ -676,7 +676,7 @@ _NODISCARD const _Ty& _Immortalize_memcpy_image() noexcept { static _Constexpr_immortalize_impl<_Ty> _Static; return _Static._Storage; } -#else // ^^^ no workaround / workaround vvv +#else // ^^^ !defined(_M_CEE) / defined(_M_CEE), TRANSITION, VSO-1153256 vvv template _NODISCARD const _Ty& _Immortalize_memcpy_image() noexcept { // return reference to a memcpy'd default-initialized _Ty @@ -695,7 +695,7 @@ _NODISCARD const _Ty& _Immortalize_memcpy_image() noexcept { _Storage[0].store(_Target_iter[0], memory_order_release); return reinterpret_cast<_Ty&>(_Storage); } -#endif // choose immortalize strategy +#endif // ^^^ defined(_M_CEE), TRANSITION, VSO-1153256 ^^^ _EXPORT_STD _NODISCARD inline const error_category& generic_category() noexcept { return _Immortalize_memcpy_image<_Generic_error_category>(); diff --git a/stl/src/excptptr.cpp b/stl/src/excptptr.cpp index c0eab29c12d..5cfc8406419 100644 --- a/stl/src/excptptr.cpp +++ b/stl/src/excptptr.cpp @@ -43,7 +43,7 @@ namespace { /* MAGIC */ static _Immortalizer_impl<_Ty> _Static; return reinterpret_cast<_Ty&>(_Static._Storage); } -#elif !defined(_M_CEE) // _M_CEE test is TRANSITION, VSO-1153256 +#elif !defined(_M_CEE) template struct _Constexpr_excptptr_immortalize_impl { union {