惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
量子位
雷峰网
雷峰网
宝玉的分享
宝玉的分享
V
Visual Studio Blog
博客园_首页
小众软件
小众软件
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
S
SegmentFault 最新的问题
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学

C++ Team Blog

C++ in the Age of AI: Visual Studio at CppCon 2026 - C++ Team Blog What’s New for C++ Developers in Visual Studio 2026 (18.7 – 18.10) - C++ Team Blog Microsoft at CppCon 2026 - C++ Team Blog MSVC C++23: constexpr cmath with LLVM Libc - C++ Team Blog MSVC Build Tools Preview updates – September 2026 - C++ Team Blog Clearer Build Optimization Results with GitHub Copilot - C++ Team Blog MSVC Build Tools Preview updates - August 2026 - C++ Team Blog What's New in vcpkg (Jul 2026) - C++ Team Blog Pure Virtual C++ 2026 Is a Wrap - C++ Team Blog Pure Virtual C++ 2026 Is Now Live! - C++ Team Blog C++ Dependencies Without the Headache: vcpkg + Copilot CLI - C++ Team Blog Pure Virtual C++ 2026 Is Tomorrow and On-Demand Sessions Are Now Available - C++ Team Blog Faster C++ iterative builds with GitHub Copilot - C++ Team Blog Pure Virtual C++ 2026 [Meet the Speakers, Part 3]: Modernizing C++ - C++ Team Blog MSVC Build Tools Preview updates - July 2026 - C++ Team Blog Rethinking C++ Performance: Faster Code Navigation and GitHub Copilot Tools with Whole Codebase Indexing - C++ Team Blog Pure Virtual C++ 2026 [Meet the Speakers, Part 2]: The AI-Native C++ Developer Workflow - C++ Team Blog Pure Virtual C++ 2026 [Meet the Speakers, Part 1]: Build Faster, Run Faster - C++ Team Blog What's New in vcpkg (June 2026) - C++ Team Blog Pure Virtual C++ 2026 Talks Announced - C++ Team Blog Save the Date: Pure Virtual C++ 2026 - C++ Team Blog Streamline C++ Code Intelligence Setup in Copilot CLI - C++ Team Blog Boosting Adobe Photoshop’s Performance with MSVC and SPGO - C++ Team Blog GitHub Copilot modernization for C++ is out of preview What’s New in vcpkg (May 2026) What’s New for C++ Developers in Visual Studio 2026 (18.1 – 18.6) Introducing Sample Profile Guided Optimization in MSVC NuGet PackageReference for C++ Projects in Visual Studio Segment Heap support for C++ projects in Visual Studio MSVC Build Tools Preview updates – May 2026
MSVC Build Tools Preview updates – June 2026
Eric Brumer · 2026-06-12 · via C++ Team Blog

June 11th, 2026

likecompelling4 reactions

Software Engineering Manager

The MSVC Build Tools Preview is updated regularly with the latest features and fixes from the MSVC development team. This post covers updates from the past month, currently targeting the v14.52 release. This encompasses changes across the compiler frontend, backend, linker, standard library, and related tools.

Although you can acquire the MSVC Build Tools Preview through either the Visual Studio 2026 Stable Channel or Visual Studio 2026 Insiders Channel, Insiders gets MSVC Preview updates roughly weekly.

To check if it’s installed make sure one or both of these components are checked in the installer:

  1. MSVC Build Tools for x64/x86 (Preview)
  2. MSVC Build Tools for ARM64/ARM64EC (Preview)

Follow the instructions on https://aka.ms/msvc/preview to configure your IDE & command prompts to use the MSVC Build Tools Preview.

The version number printed by cl.exe and link.exe will be at least 19.52.36418 / 14.52.36418.

We appreciate any feedback that you may have. Please report any issues on Visual Studio Developer Community so we can address them by the time we move out of preview.

C++ Modules Improvements

Several fixes improve the reliability of C++ modules:

  • Fixed a compiler crash involving variadic template classes using if constexpr with requires expressions inside modules.
  • Fixed an internal compiler error (ICE) with C++23 modules.
  • Fixed an ICE when using exported operator== in modules.
  • Fixed an issue where import std would fail to build.
  • Fixed a reentrancy issue when prolongations and global module fragments are involved, improving module build reliability.
  • Fixed nested parentheses in macro __VA_OPT__ when imported from a header unit.

Code Generation and Optimization

ARM64 improvements:

  • Improved vector construction by eliminating redundant insert operations after duplicate instructions.
  • Added support for SVE (Scalable Vector Extension) types to the SSA Optimizer.
  • Narrowed the width of immediate operands in bitfield instructions (BFI, BFXIL, UBFIZ, UBFX, SBFIZ, SBFX) for more compact code.
  • Canonicalized vector memory intrinsics into standard load/store operations, delivering 2-3% improvement in targeted benchmarks.

x64/x86 improvements:

  • Fixed multiple correctness bugs in multi-byte copy propagation, including a miscompile when the destination address is captured.
  • Preserved overflow flags when strength-reducing multiplies to shifts.
  • Fixed an ICE involving LEA with a non-register destination on x86.
  • Fixed an ICE compiling SIMD C files on amd64.
  • Tuned SSA Optimizer copy propagation on x86.
  • Fixed an x86 codegen bug for 16-bit overflow intrinsics.

Optimization improvements:

  • Added return value cost analysis for inliner heuristics, improving inlining decisions.
  • Improved the inliner’s memory model to enable function pointer devirtualization.
  • Fixed a coroutine inlining assertion failure.
  • Enabled folding of constant type conversions without requiring /fp:fast.
  • Fixed a combined loop unswitching and loop vectorization failure.
  • Fixed several ICEs in the SLP vectorizer and tile register allocator.
  • Fixed multiple loop optimizer correctness issues in scalar promotion.
  • Reduced the IL emission of attributes, improving compiler throughput.

Linker & PDB Improvements

  • Added x64 unwind V3 debugger unwinder support in DIA.
  • Fixed incorrect epilog unwind codes for alloca functions.
  • Fixed a crash during link-time code generation and PGO linking.
  • Fixed an issue where /LARGEADDRESSAWARE was incorrectly polluting the link line.
  • Fixed a decision tree optimization bug caused by using invalidated iterators.

Frontend and Conformance Fixes

  • Fixed the <numbers> header causing compilation issues when a variable or type named e is used.
  • Fixed constexpr object evaluations failing with C2131 inside lambdas with auto parameters in nested structs.
  • Fixed incorrect deduction of the type placeholder for class type templates.
  • Avoided unnecessary instantiation of static inline template members when they are not ODR-used.
  • Added a new warning for overriding a non-pure virtual function which is deprecated.
  • Fixed rejection of lambda instantiation with constraints based on other parameter names.
  • Fixed a template parameter becoming unrecognized in noexcept expressions when synthesizing inherited constructors in __declspec(dllexport) classes.
  • Fixed static_assert incorrectly accepting an invalid parameter pack.
  • Fixed an ICE with CTAD (class template argument deduction), designated initializers, and local lambdas.
  • Fixed an ICE involving assertions in the lambda capture processing.
  • Fixed a syntax error on C++11 attributes on variadic arguments in C++/CLI.
  • Fixed calls in aggregate initializers being missed, and aggressive instantiation in lambda init-captures.
  • Fixed <coroutine> __builtin_coro_noop emitting a dynamic initializer when it shouldn’t.
  • Fixed ambiguity between partial specializations when auto non-type template parameters are involved.
  • Fixed an operator binding regression where a unary + operator was incorrectly treated as binary.
  • Fixed aggregate parenthesized initialization incorrectly rejecting conversion operators.
  • Fixed a C1001 crash on x86 in pragma warning handling.
  • Reworked #pragma warning output under /E for correctness.

Preprocessor

  • Fixed token concatenation of user-defined literals and numbers emitting a spurious warning C5103 under /Zc:preprocessor.
  • Fixed a determinism issue in precompiled header generation under /Zc:preprocessor.

AddressSanitizer

  • Fixed incorrect merging of global variable metadata under AddressSanitizer builds.

STL

  • See the STL Changelog for details on STL improvements in MSVC Build Tools Preview.

Other Fixes

  • masm/ml64: added .popframe directive support with improved error handling.
  • Improved compile-time throughput for large chained function expressions by refactoring a quadratic algorithm to linear.
  • Fixed a resource leak in type library reference loading.

Tickets Fixed

The following tickets reported through Developer Community have been fixed in this update:

Try Out the MSVC Build Tools Preview!

Please try out the MSVC Build Tools Preview and let us know what you think! Installation instructions:

  1. Download Visual Studio 2026 Insiders for frequent updates, or download Visual Studio 2026 for less frequent updates.
  2. Install the Desktop development with C++ workload and make sure one or both of these MSVC components are checked (depending on your target build architecture):
    • MSVC Build Tools for x64/x86 (Preview)
    • MSVC Build Tools for ARM64/ARM64EC (Preview)
  3. Follow the instructions on https://aka.ms/msvc/preview on configuring your IDE & command prompts to use the MSVC Build Tools Preview.
  4. Share your feedback with us on Visual Studio Developer Community.

Category

Topics

Author

Eric Brumer

Software Engineering Manager

Software engineering manager on the Visual C++ compiler back-end team. I lead the machine-independent optimization team, as well as code generation security, including sanitizers.

Read next

Stay informed

Get notified when new posts are published.