From cf6f2d8a7a3f517405916d6d4b1548359e127894 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 11:57:54 -0700 Subject: [PATCH 01/13] Python 3.13.4. --- azure-devops/provision-image.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-devops/provision-image.ps1 b/azure-devops/provision-image.ps1 index 901299799b3..43d6b1b9850 100644 --- a/azure-devops/provision-image.ps1 +++ b/azure-devops/provision-image.ps1 @@ -43,7 +43,7 @@ foreach ($workload in $VisualStudioWorkloads) { $PowerShellUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.5.1/PowerShell-7.5.1-win-x64.msi' $PowerShellArgs = @('/quiet', '/norestart') -$PythonUrl = 'https://www.python.org/ftp/python/3.13.3/python-3.13.3-amd64.exe' +$PythonUrl = 'https://www.python.org/ftp/python/3.13.4/python-3.13.4-amd64.exe' $PythonArgs = @('/quiet', 'InstallAllUsers=1', 'PrependPath=1', 'CompileAll=1', 'Include_doc=0') $CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_551.61_windows.exe' From 21d30c243d4dec4aecb4ff39e9aa890f3e221308 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 12:05:18 -0700 Subject: [PATCH 02/13] VS 2022 17.14.5 Preview 1. --- CMakeLists.txt | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 827c678af9b..4900882ca6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,8 +6,8 @@ cmake_minimum_required(VERSION 3.31.0) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) project(msvc_standard_libraries LANGUAGES CXX) -if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.44.35207.1") - message(FATAL_ERROR "The STL must be built with VS 2022 17.14 Preview 7 or later.") +if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.44.35209") + message(FATAL_ERROR "The STL must be built with VS 2022 17.14.5 Preview 1 or later.") endif() include(CheckCXXSourceCompiles) diff --git a/README.md b/README.md index 8b085358593..8642dc9e29e 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem # How To Build With The Visual Studio IDE -1. Install Visual Studio 2022 17.14 Preview 7 or later. +1. Install Visual Studio 2022 17.14.5 Preview 1 or later. * Select "Windows 11 SDK (10.0.22621.0)" in the VS Installer. * Select "MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)" in the VS Installer if you would like to build the ARM64/ARM64EC target. @@ -160,7 +160,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem # How To Build With A Native Tools Command Prompt -1. Install Visual Studio 2022 17.14 Preview 7 or later. +1. Install Visual Studio 2022 17.14.5 Preview 1 or later. * Select "Windows 11 SDK (10.0.22621.0)" in the VS Installer. * Select "MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)" in the VS Installer if you would like to build the ARM64/ARM64EC target. From 23025f593b5b1ebd630b8593b5ec9f12c456b790 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 11:57:30 -0700 Subject: [PATCH 03/13] Windows 11 SDK (10.0.26100.3916). --- CMakeLists.txt | 9 ++++++--- README.md | 4 ++-- azure-devops/provision-image.ps1 | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4900882ca6e..99e93212552 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,12 +13,12 @@ endif() include(CheckCXXSourceCompiles) check_cxx_source_compiles([=[ #include -static_assert(WDK_NTDDI_VERSION >= NTDDI_WIN10_NI, "Inspecting WDK_NTDDI_VERSION, the Windows SDK version."); +static_assert(WDK_NTDDI_VERSION >= NTDDI_WIN11_GE, "Inspecting WDK_NTDDI_VERSION, the Windows SDK version."); int main() {} ]=] WINDOWS_SDK_VERSION_CHECK) if(NOT WINDOWS_SDK_VERSION_CHECK) - message(FATAL_ERROR "The STL must be built with the Windows 11 SDK (10.0.22621.0) or later. Make sure it's available by selecting it in the Individual Components tab of the VS Installer.") + message(FATAL_ERROR "The STL must be built with the Windows 11 SDK (10.0.26100.3916) or later. Make sure it's available by selecting it in the Individual Components tab of the VS Installer.") endif() if(NOT DEFINED VCLIBS_TARGET_ARCHITECTURE) @@ -96,9 +96,12 @@ set(TOOLSET_LIB "${TOOLSET_ROOT_DIR}/lib/${VCLIBS_X86_OR_X64}") set(STL_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out/lib/${VCLIBS_I386_OR_AMD64}") set(STL_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out/lib/${VCLIBS_I386_OR_AMD64}") set(STL_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out/bin/${VCLIBS_I386_OR_AMD64}") + +# TRANSITION, update internal crt-common.settings.targets, atlmfc.settings.targets, and fe-components.settings.targets +# from NTDDI_WIN10_NI to NTDDI_WIN11_GE when the internal WinSDK is updated. add_compile_definitions( _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH WIN32_LEAN_AND_MEAN STRICT _CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS - _WIN32_WINNT=0x0A00 NTDDI_VERSION=NTDDI_WIN10_NI) + _WIN32_WINNT=0x0A00 NTDDI_VERSION=NTDDI_WIN11_GE) if(STL_USE_ANALYZE) # TRANSITION, Windows SDK 10.0.22621.0 emits diff --git a/README.md b/README.md index 8642dc9e29e..922d91a706a 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem # How To Build With The Visual Studio IDE 1. Install Visual Studio 2022 17.14.5 Preview 1 or later. - * Select "Windows 11 SDK (10.0.22621.0)" in the VS Installer. + * Select "Windows 11 SDK (10.0.26100.3916)" in the VS Installer. * Select "MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)" in the VS Installer if you would like to build the ARM64/ARM64EC target. * Select "MSVC v143 - VS 2022 C++ ARM build tools (Latest)" in the VS Installer @@ -161,7 +161,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem # How To Build With A Native Tools Command Prompt 1. Install Visual Studio 2022 17.14.5 Preview 1 or later. - * Select "Windows 11 SDK (10.0.22621.0)" in the VS Installer. + * Select "Windows 11 SDK (10.0.26100.3916)" in the VS Installer. * Select "MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest)" in the VS Installer if you would like to build the ARM64/ARM64EC target. * Select "MSVC v143 - VS 2022 C++ ARM build tools (Latest)" in the VS Installer diff --git a/azure-devops/provision-image.ps1 b/azure-devops/provision-image.ps1 index 43d6b1b9850..e89d6492a12 100644 --- a/azure-devops/provision-image.ps1 +++ b/azure-devops/provision-image.ps1 @@ -29,7 +29,7 @@ $VisualStudioWorkloads = @( 'Microsoft.VisualStudio.Component.VC.Tools.ARM64', 'Microsoft.VisualStudio.Component.VC.Tools.ARM64EC', 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64', - 'Microsoft.VisualStudio.Component.Windows11SDK.22621' + 'Microsoft.VisualStudio.Component.Windows11SDK.26100' ) $VisualStudioUrl = 'https://aka.ms/vs/17/pre/vs_enterprise.exe' From 50a330f7fa708120e89a9e25655ae4afe88f5559 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 13:42:32 -0700 Subject: [PATCH 04/13] New pool. --- azure-devops/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-devops/config.yml b/azure-devops/config.yml index b0833824a78..8ec1c3934c8 100644 --- a/azure-devops/config.yml +++ b/azure-devops/config.yml @@ -5,7 +5,7 @@ variables: - name: poolName - value: 'StlBuild-2025-05-16T0735-Pool' + value: 'StlBuild-2025-06-10T1243-Pool' readonly: true - name: poolDemands value: 'EnableSpotVM -equals false' From 2992b3a814d976cf64f8d82bec12f778be0af7b7 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 12:53:44 -0700 Subject: [PATCH 05/13] Update P1208R6_source_location for EDG again. --- tests/std/tests/P1208R6_source_location/test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/std/tests/P1208R6_source_location/test.cpp b/tests/std/tests/P1208R6_source_location/test.cpp index 4ad4b7a27e5..6ed3f67d98b 100644 --- a/tests/std/tests/P1208R6_source_location/test.cpp +++ b/tests/std/tests/P1208R6_source_location/test.cpp @@ -141,8 +141,8 @@ constexpr void different_constructor_test() { assert(x.loc.column() == 5); #endif // ^^^ C1XX ^^^ #if _USE_DETAILED_FUNCTION_NAME_IN_SOURCE_LOCATION -#ifdef __EDG__ // TRANSITION, EDG is changing to match C1XX's output - assert(x.loc.function_name() == THISCALL_OR_CDECL " s::s(int)"sv || x.loc.function_name() == "s::s(int)"sv); +#ifdef __EDG__ // TRANSITION, EDG is changing to almost match C1XX's output + assert(x.loc.function_name() == "__cdecl s::s(int)"sv || x.loc.function_name() == "s::s(int)"sv); #else // ^^^ workaround / no workaround vvv assert(x.loc.function_name() == THISCALL_OR_CDECL " s::s(int)"sv); #endif // ^^^ no workaround ^^^ From cceecef46450005ab30144b2bab1df523738fa10 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 13:48:15 -0700 Subject: [PATCH 06/13] VERIFIED INTERNALLY: Remove workaround for VSO-2417635 "/clr C++20 chk assertion failed: rhs.is_lvalue() in constexpr.cpp, again". --- .../test.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp b/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp index 1500983e015..2f8223c3cee 100644 --- a/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp +++ b/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp @@ -199,9 +199,7 @@ constexpr bool test() { ASSERT(!is_corresponding_member(&S5::v1, &S6::v2)); ASSERT(!is_corresponding_member(&S5::v2, &S6::v1)); ASSERT(!is_corresponding_member(&S5::v3, &S6::v3)); -#ifndef _M_CEE // TRANSITION, VSO-2417635 ASSERT(!is_corresponding_member(&NS::v1, &NS::w1)); -#endif // ^^^ no workaround ^^^ ASSERT(!is_corresponding_member(&S7::f1, &S7::f1)); ASSERT(!is_corresponding_member(static_cast(nullptr), static_cast(nullptr))); ASSERT(!is_corresponding_member(&S1::v1, static_cast(nullptr))); @@ -236,9 +234,7 @@ constexpr bool test() { ASSERT(is_pointer_interconvertible_with_class(&U::v2)); ASSERT(!is_pointer_interconvertible_with_class(&NS::a)); -#ifndef _M_CEE // TRANSITION, VSO-2417635 ASSERT(!is_pointer_interconvertible_with_class(&NS::b)); -#endif // ^^^ no workaround ^^^ ASSERT(!is_pointer_interconvertible_with_class(&C::f1)); ASSERT(!is_pointer_interconvertible_with_class(static_cast(nullptr))); } From 10e1b619141fab005c2a2a8678aef1ec79e7a2ed Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 13:49:55 -0700 Subject: [PATCH 07/13] VERIFIED INTERNALLY: Remove workaround for VSO-1168721 "Assertion failed: `p.edges.size() <= 1` comparing converted pointer in constant expression". --- tests/std/tests/P0896R4_P1614R2_comparisons/test.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/std/tests/P0896R4_P1614R2_comparisons/test.cpp b/tests/std/tests/P0896R4_P1614R2_comparisons/test.cpp index 9582b548a25..baef549e326 100644 --- a/tests/std/tests/P0896R4_P1614R2_comparisons/test.cpp +++ b/tests/std/tests/P0896R4_P1614R2_comparisons/test.cpp @@ -425,13 +425,8 @@ constexpr void ordering_test_cases() { derived const some_deriveds[2] = {}; test_strongly_ordered(&some_deriveds[0], &some_deriveds[1]); -#if !defined(__clang__) && !defined(__EDG__) // TRANSITION, VSO-1168721 - if (!std::is_constant_evaluated()) -#endif // ^^^ workaround ^^^ - { - test_strongly_ordered(static_cast(&some_deriveds[0]), &some_deriveds[1]); - test_strongly_ordered(&some_deriveds[0], static_cast(&some_deriveds[1])); - } + test_strongly_ordered(static_cast(&some_deriveds[0]), &some_deriveds[1]); + test_strongly_ordered(&some_deriveds[0], static_cast(&some_deriveds[1])); if (!std::is_constant_evaluated()) { test_strongly_ordered(&some_ints[0], static_cast(&some_ints[1])); From e4dc88c3a330c18c8f362759a0fa4b4da1a356fe Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 13:57:51 -0700 Subject: [PATCH 08/13] VERIFIED: Remove workaround for VSO-2383148 "C++23 static lambdas aren't accepted by the old lambda processor". --- stl/inc/yvals_core.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/stl/inc/yvals_core.h b/stl/inc/yvals_core.h index 1ed0b04bf1a..1f50e5cbb25 100644 --- a/stl/inc/yvals_core.h +++ b/stl/inc/yvals_core.h @@ -2008,15 +2008,11 @@ compiler option, or define _ALLOW_RTCc_IN_STL to suppress this error. #define _STATIC_CALL_OPERATOR #define _CONST_CALL_OPERATOR const #define _STATIC_LAMBDA -#elif defined(__clang__) || defined(__EDG__) // no workaround +#else // ^^^ workaround / no workaround vvv #define _STATIC_CALL_OPERATOR static #define _CONST_CALL_OPERATOR #define _STATIC_LAMBDA static -#else // TRANSITION, VSO-2383148, fixed in VS 2022 17.14 Preview 3 -#define _STATIC_CALL_OPERATOR static -#define _CONST_CALL_OPERATOR -#define _STATIC_LAMBDA -#endif // ^^^ workaround ^^^ +#endif // ^^^ no workaround ^^^ #ifdef __CUDACC__ // TRANSITION, CUDA 12.4 doesn't recognize MSVC __restrict; CUDA __restrict__ is not usable in C++ #define _RESTRICT From 38bf4385e69cdf1f7080e5f4084e31cc34750aab Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 15:59:07 -0700 Subject: [PATCH 09/13] Perma-workaround an MSVC static lambda bug, not reported. --- stl/inc/__msvc_ranges_tuple_formatter.hpp | 27 ++++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/stl/inc/__msvc_ranges_tuple_formatter.hpp b/stl/inc/__msvc_ranges_tuple_formatter.hpp index 677997e3abb..176bf1eb762 100644 --- a/stl/inc/__msvc_ranges_tuple_formatter.hpp +++ b/stl/inc/__msvc_ranges_tuple_formatter.hpp @@ -239,19 +239,20 @@ class basic_format_arg { void(__cdecl* _Format)(basic_format_parse_context<_CharType>& _Parse_ctx, _Context& _Format_ctx, const void*); template - explicit handle(_Ty& _Val) noexcept - : _Ptr(_STD addressof(_Val)), _Format([](basic_format_parse_context<_CharType>& _Parse_ctx, - _Context& _Format_ctx, const void* _Ptr) _STATIC_LAMBDA { - using _Td = remove_const_t<_Ty>; - // doesn't drop const-qualifier per an unnumbered LWG issue - using _Tq = conditional_t<_Formattable_with, const _Ty, _Ty>; - _STL_INTERNAL_STATIC_ASSERT(_Formattable_with<_Tq, _Context>); - - typename _Context::template formatter_type<_Td> _Formatter; - _Parse_ctx.advance_to(_Formatter.parse(_Parse_ctx)); - _Format_ctx.advance_to( - _Formatter.format(*const_cast<_Tq*>(static_cast(_Ptr)), _Format_ctx)); - }) {} + static void __cdecl _Handle_format( + basic_format_parse_context<_CharType>& _Parse_ctx, _Context& _Format_ctx, const void* _Ptr) { + using _Td = remove_const_t<_Ty>; + // doesn't drop const-qualifier per an unnumbered LWG issue + using _Tq = conditional_t<_Formattable_with, const _Ty, _Ty>; + _STL_INTERNAL_STATIC_ASSERT(_Formattable_with<_Tq, _Context>); + + typename _Context::template formatter_type<_Td> _Formatter; + _Parse_ctx.advance_to(_Formatter.parse(_Parse_ctx)); + _Format_ctx.advance_to(_Formatter.format(*const_cast<_Tq*>(static_cast(_Ptr)), _Format_ctx)); + } + + template + explicit handle(_Ty& _Val) noexcept : _Ptr(_STD addressof(_Val)), _Format(_Handle_format<_Ty>) {} public: void format(basic_format_parse_context<_CharType>& _Parse_ctx, _Context& _Format_ctx) const { From bb6f43027730dce8b33c5453588e80a1e571f6a0 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 14:03:29 -0700 Subject: [PATCH 10/13] VERIFIED: Remove WinSDK ARM64EC workarounds for fabsf. --- .../test.compile.pass.cpp | 15 ++++----------- .../test.cpp | 5 ----- .../P2465R3_standard_library_modules/test.cpp | 5 ----- .../VSO_1775715_user_defined_modules/test.cpp | 7 ------- 4 files changed, 4 insertions(+), 28 deletions(-) diff --git a/tests/std/tests/GH_002206_unreserved_names/test.compile.pass.cpp b/tests/std/tests/GH_002206_unreserved_names/test.compile.pass.cpp index 2ccec3831f5..781f42bb389 100644 --- a/tests/std/tests/GH_002206_unreserved_names/test.compile.pass.cpp +++ b/tests/std/tests/GH_002206_unreserved_names/test.compile.pass.cpp @@ -33,15 +33,10 @@ // Also test GH-2645: : Conformance issue on [[msvc::known_semantics]] #define msvc 1 #define known_semantics 2 - -#ifndef _M_ARM64EC // TRANSITION, Windows SDK 10.0.22621.0 uses '#pragma intrinsic(fabsf)' for ARM64EC. - // This use is no longer present in Windows SDK 10.0.26100.0. -#define intrinsic 3 -#endif // ^^^ no workaround ^^^ - -#define lifetimebound 4 -#define noop_dtor 5 -#define empty_bases 6 +#define intrinsic 3 +#define lifetimebound 4 +#define noop_dtor 5 +#define empty_bases 6 #include <__msvc_all_public_headers.hpp> @@ -53,11 +48,9 @@ #error bad macro expansion #endif // known_semantics != 2 -#ifndef _M_ARM64EC // TRANSITION, Windows SDK 10.0.22621.0 #if intrinsic != 3 #error bad macro expansion #endif // intrinsic != 3 -#endif // ^^^ no workaround ^^^ #if lifetimebound != 4 #error bad macro expansion diff --git a/tests/std/tests/P1502R1_standard_library_header_units/test.cpp b/tests/std/tests/P1502R1_standard_library_header_units/test.cpp index cb9bb4cb64d..a4e51a71043 100644 --- a/tests/std/tests/P1502R1_standard_library_header_units/test.cpp +++ b/tests/std/tests/P1502R1_standard_library_header_units/test.cpp @@ -9,11 +9,6 @@ // This EXCLUDES the headers in: // [tab:headers.cpp.c]: "Table 22: C++ headers for C library facilities" -// TRANSITION, Windows SDK 10.0.22621.0 causes this test to fail for ARM64EC with: -// "error LNK2019: unresolved external symbol fabsf referenced in function #fabsf$exit_thunk (EC Symbol)" -// It passes when built with Windows SDK 10.0.26100.0. -// UNSUPPORTED: arm64ec - import ; import ; import ; diff --git a/tests/std/tests/P2465R3_standard_library_modules/test.cpp b/tests/std/tests/P2465R3_standard_library_modules/test.cpp index 8ced3aa5137..06e295a6ef6 100644 --- a/tests/std/tests/P2465R3_standard_library_modules/test.cpp +++ b/tests/std/tests/P2465R3_standard_library_modules/test.cpp @@ -1,11 +1,6 @@ // Copyright (c) Microsoft Corporation. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// TRANSITION, Windows SDK 10.0.22621.0 causes this test to fail for ARM64EC with: -// "error LNK2019: unresolved external symbol fabsf referenced in function #fabsf$exit_thunk (EC Symbol)" -// It passes when built with Windows SDK 10.0.26100.0. -// UNSUPPORTED: arm64ec - import std; #include // intentionally not diff --git a/tests/std/tests/VSO_1775715_user_defined_modules/test.cpp b/tests/std/tests/VSO_1775715_user_defined_modules/test.cpp index d09811eae53..599515d10bc 100644 --- a/tests/std/tests/VSO_1775715_user_defined_modules/test.cpp +++ b/tests/std/tests/VSO_1775715_user_defined_modules/test.cpp @@ -3,13 +3,6 @@ // Note: To properly test the fix for VSO-1775715, don't include any headers here. -// TRANSITION, Windows SDK 10.0.22621.0 causes this test to fail for ARM64EC with: -// "error LNK2019: unresolved external symbol fabsf referenced in function #fabsf$exit_thunk (EC Symbol)" -// Windows SDK 10.0.26100.0 will avoid that error, but we'll need to investigate why user.ixx emits: -// "error C2678: binary '==': no operator found which takes a left-hand operand of type 'const std::string' -// (or there is no acceptable conversion)" -// UNSUPPORTED: arm64ec - import User; int main() { From a92982c054606e51a27fb0dff158e2e5e5aeec96 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 10 Jun 2025 14:05:30 -0700 Subject: [PATCH 11/13] VERIFIED: Update WinSDK comments as warnings C6553 and C28301 still repro. --- CMakeLists.txt | 4 ++-- tests/utils/stl/test/tests.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99e93212552..92d66697413 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,13 +104,13 @@ add_compile_definitions( _WIN32_WINNT=0x0A00 NTDDI_VERSION=NTDDI_WIN11_GE) if(STL_USE_ANALYZE) - # TRANSITION, Windows SDK 10.0.22621.0 emits + # TRANSITION, Windows SDK 10.0.26100.3916 emits # "warning C6553: The annotation for function 'LCMapStringEx' on _Param_(9) does not apply to a value type." # Reported as OS-40109504 "Windows SDK: incorrect SAL annotations on functions the STL uses". add_compile_options("$<$:/analyze:autolog-;/wd6553>") if(VCLIBS_TARGET_ARCHITECTURE STREQUAL "arm64ec") - # TRANSITION, Windows SDK 10.0.22621.0 emits + # TRANSITION, Windows SDK 10.0.26100.3916 emits # "warning C28301: No annotations for first declaration of 'meow'" # for various intrinsics when building for ARM64EC. add_compile_options("$<$:/wd28301>") diff --git a/tests/utils/stl/test/tests.py b/tests/utils/stl/test/tests.py index aa8a6acbc0d..7cc250e2871 100644 --- a/tests/utils/stl/test/tests.py +++ b/tests/utils/stl/test/tests.py @@ -260,7 +260,7 @@ def _handleEnvlst(self, litConfig): self.compileFlags.append('/arm64EC') self.linkFlags.append('/machine:arm64ec') - # TRANSITION, Windows SDK 10.0.22621.0 emits + # TRANSITION, Windows SDK 10.0.26100.3916 emits # "warning C28301: No annotations for first declaration of 'meow'" # for various intrinsics when building for ARM64EC. self.compileFlags.append('/wd28301') From 6dd083a77b9e3a2b3c0d9e1cbf1a8450241cfcd7 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Wed, 11 Jun 2025 13:59:29 -0700 Subject: [PATCH 12/13] azure-pipelines.yml: Comment out Early_Build_ARM, Build_And_Test_ARM. --- azure-pipelines.yml | 56 ++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eb9e60bfb71..2deff20abd4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,21 +52,21 @@ stages: numShards: 1 skipTesting: true - - stage: Early_Build_ARM - dependsOn: [] - displayName: 'Early Build ARM' - pool: - name: ${{ variables.poolName }} - demands: ${{ variables.poolDemands }} - jobs: - - template: azure-devops/build-and-test.yml - parameters: - hostArch: x64 - targetArch: arm - targetPlatform: arm - analyzeBuild: true - numShards: 1 - skipTesting: true +# - stage: Early_Build_ARM +# dependsOn: [] +# displayName: 'Early Build ARM' +# pool: +# name: ${{ variables.poolName }} +# demands: ${{ variables.poolDemands }} +# jobs: +# - template: azure-devops/build-and-test.yml +# parameters: +# hostArch: x64 +# targetArch: arm +# targetPlatform: arm +# analyzeBuild: true +# numShards: 1 +# skipTesting: true - stage: Early_Build_ARM64 dependsOn: [] @@ -134,19 +134,19 @@ stages: targetArch: x86 targetPlatform: x86 - - stage: Build_And_Test_ARM - dependsOn: Build_And_Test_x64 - displayName: 'Build and Test ARM' - pool: - name: ${{ variables.poolName }} - demands: ${{ variables.poolDemands }} - jobs: - - template: azure-devops/build-and-test.yml - parameters: - hostArch: x64 - targetArch: arm - targetPlatform: arm - testsBuildOnly: true +# - stage: Build_And_Test_ARM +# dependsOn: Build_And_Test_x64 +# displayName: 'Build and Test ARM' +# pool: +# name: ${{ variables.poolName }} +# demands: ${{ variables.poolDemands }} +# jobs: +# - template: azure-devops/build-and-test.yml +# parameters: +# hostArch: x64 +# targetArch: arm +# targetPlatform: arm +# testsBuildOnly: true - stage: Build_And_Test_ARM64 dependsOn: Build_And_Test_x64 From 9748dde554d06a6268f3c492e016838ad5cd3424 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Wed, 11 Jun 2025 14:05:36 -0700 Subject: [PATCH 13/13] Comment out the Early_Build_ARM dependency too. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2deff20abd4..e096c0fa276 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -107,7 +107,7 @@ stages: - Code_Format - Early_Build_x64 - Early_Build_x86 - - Early_Build_ARM +# - Early_Build_ARM - Early_Build_ARM64 - Early_Build_ARM64EC displayName: 'Build and Test x64'