Toolset update: MSVC Compiler 19.52.36510#6346
Conversation
…ilable in C++23 mode.
… available in C++23 mode. Fixes GH 5755.
…85 for _BitScanForward declared by winnt.h". (WinSDK 10.0.28000.1890 was reportedly the first release with this fix.)
There was a problem hiding this comment.
Pull request overview
This PR performs a routine STL toolset update, advancing the required compiler/tool versions and removing TRANSITION workarounds that are no longer needed now that the minimum MSVC compiler is 19.51. Now that the minimum supported MSVC (19.51), Clang 22, and EDG all support the relevant builtins, the #ifdef __cpp_lib_reference_from_temporary, #ifdef __cpp_lib_is_implicit_lifetime, and related _MSC_VER >= 1951 guards are deleted from the core headers, and the feature-test macros are now defined unconditionally in C++23 mode. It also bumps infrastructure (CUDA 13.3, Python 3.14.6, PowerShell 7.6.3, Node 26.4.0, actions/checkout@v7, new pools/locations) and drops a Windows SDK /analyze C28285 suppression that the SDK has fixed.
Changes:
- Raise compiler/tool minimums (MSVC 19.51 in
yvals_core.h/ 19.52.36510 in build, CUDA 13.3, Python 3.14.6) and remove now-obsolete TRANSITION workarounds intuple,utility,type_traits,memory, andyvals_core.h. - Update CI/provisioning toolchain: PowerShell 7.6.3, CUDA 13.3.0,
actions/checkout@v7, Node>=26.4.0, cycled pool names/locations. - Mark
make_unique.array.pass.cppas passing for MSVC and refresh TRANSITION comments to reference GH-6169.
Show a summary per file
| File | Description |
|---|---|
| stl/inc/yvals_core.h | Bumps CUDA/MSVC version guards and makes the implicit-lifetime / reference-from-temporary / start_lifetime_as feature-test macros unconditional. |
| stl/inc/tuple | Removes __cpp_lib_reference_from_temporary and _MSC_VER < 1951 tuple workarounds. |
| stl/inc/utility | Removes __cpp_lib_reference_from_temporary guards around deleted pair constructors. |
| stl/inc/type_traits | Removes guards around is_implicit_lifetime and reference_constructs/converts_from_temporary. |
| stl/inc/memory | Removes __cpp_lib_is_implicit_lifetime guards in start_lifetime_as and updates a TRANSITION comment. |
| CMakeLists.txt | Raises required MSVC build version and drops the fixed C28285 /analyze suppression. |
| tests/CMakeLists.txt, README.md | Bump required Python to 3.14.6. |
| tests/libcxx/expected_results.txt | Removes make_unique.array.pass.cpp from expected failures. |
| tests/std/.../P2590R2.../test.cpp | Updates TRANSITION comment to reference GH-6169. |
| azure-devops/provision-image.ps1 | Bumps PowerShell, Python, and CUDA installer versions. |
| azure-devops/config.yml, create-1es-hosted-pool.ps1 | Cycles pool names and the location index. |
| .github/workflows/update-status-chart.yml | Bumps checkout to v7 and Node to >=26.4.0. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 15/15 changed files
- Comments generated: 0
- Review effort level: Medium
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
|
I'm mirroring this to the MSVC-internal repo. Please notify me if any further changes are pushed, otherwise no action is required. |
yvals_core.h: Require MSVC Compiler 19.51.<cmath>: Special Mathellint_2()produces wrong result when angle is close to2 * pi#6152 / DevCom-10383094 / VSO-1830422.tupleworkaround for VSO-2826400.__cpp_lib_is_implicit_lifetimeis always available in C++23 mode.__cpp_lib_reference_from_temporaryis always available in C++23 mode.__cpp_lib_start_lifetime_asis always defined for real MSVC./analyzeemits warning C28285 for_BitScanForwarddeclared bywinnt.h".make_unique.array.pass.cppis now passing for MSVC.P2321R2_views_adjacent: Work around x86/analyzeOOM.