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

推荐订阅源

J
Java Code Geeks
美团技术团队
Recent Announcements
Recent Announcements
B
Blog
GbyAI
GbyAI
雷峰网
雷峰网
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
V
V2EX
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
宝玉的分享
宝玉的分享
A
About on SuperTechFans
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏

C++ Team Blog

Bringing Correctly Rounded Math to Production with LLVM-libc - 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 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 MSVC Build Tools Preview updates – June 2026 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 - July 2026 - C++ Team Blog
Eric Brumer · 2026-07-16 · via C++ Team Blog

July 15th, 2026

like1 reaction

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 Insiders Channel, Insiders gets MSVC Preview updates more quickly (roughly weekly).

To check if it is installed simply 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.36520 / 14.52.36520.

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++ Conformance and Frontend

  • Relaxed the rules for designated initialization to accept more valid C++ code.
  • Added support for constexpr new[] (array allocation) inside modules.
  • Corrected comparison of non-type template arguments so that constraints (concepts) no longer cause external member function definitions to fail to compile.
  • Fixed type deduction so the correct type is propagated through nested lambdas, including decltype of a captured entity inside a non-mutable lambda.
  • Fixed an incorrect result from the __is_constructible type trait.
  • Fixed a false negative from std::is_layout_compatible on structs containing nested structs.
  • Improved _Pragma handling: better support when mixed with macros, full support under /E, and fixes for preprocessor crashes when a function-like macro expands at a _Pragma.
  • Increased the compiler limit for deeply nested initializers and increased the maximum size of legacy preprocessor macro buffers.
  • Reduced memory usage when caret (^) diagnostics are enabled.
  • Fixed selection of an overloaded member function via static_cast when the member has a deduced (auto) return type in a class template.
  • Fixed template-argument deduction for class templates that previously produced a spurious C2641.
  • Fixed several internal compiler errors, including those involving requires with a default template argument before a parameter pack, coroutines with aggregate initialization, and recursive variadic template default member initializers.
  • Improved robustness of MultiByteToWideChar handling on older Windows versions.

C++ Modules

  • Fixed a fatal error C1001 and C1116 regression when importing a partitioned C++23 module (built with import std;) after including third-party headers.
  • Fixed an internal compiler error when exporting an overload set from a module.
  • Improved header-unit resolution so a quoted include correctly falls back to an angle-bracket lookup when the resolved entry was already consumed.
  • Added a new LNK4321 warning that diagnoses duplicate C++ module exports in an import library.

Code Generation and Optimization

ARM64 improvements:

  • Added vectorization support for floor, ceil, trunc, and round.
  • Improved NEON code generation: folded redundant duplicate sequences, eliminated redundant compare-against-zero on mask inputs, and tracked live bits across NEON vector arithmetic to remove dead instructions.
  • Enabled load-pair/store-pair fusion for adjacent global table lookups accessed through a computed index.
  • Improved register spill and rematerialization cost modeling for high-use values.
  • Fixed a signedness mismatch in paired integer-to-floating-point SIMD conversions.

x64 improvements:

  • Extended code generation for the newest x64 instruction set (APX), including new destination-form lowering and a conditional-move optimization pattern, and fixed keeping caller-saved registers unnecessarily live across calls under LTCG.
  • Fixed generation of an invalid AVX-512 gather instruction that used a high vector index register.
  • Improved code generation for population-count (popcount) patterns.
  • Preserved the sign of negative zero in the 32-bit x86 floor expansion.
  • Fixed a miscompilation of descending bit-search loops that use trailing-zero counting.
  • Addressed a performance regression in a speech-recognition workload involving fused multiply-add.

Optimizer:

  • Enabled strength reduction for induction variables that can overflow, and expanded the set of overflow cases the optimizer can handle safely.
  • Enabled earlier loop-invariant code motion.
  • Enabled a new expression-reassociation pass.
  • Enabled type-based devirtualization alongside PGO and improved speculative devirtualization inlining.
  • Improved heuristics leading to more common-subexpression elimination in larger functions.
  • Fixed several optimizer internal compiler errors and miscompilations, including a jump-threading crash, loop unswitching under LTCG, preservation of overflow semantics through the loop optimizer, a hang in string-compare simplification, and incorrect code generation for indirection through a based pointer.
  • Fixed a fence-preservation issue under /fp:strict.

Other code generation:

  • Fixed /LTCG:incremental unnecessarily falling back to a full compilation on alternating links.
  • Added a graceful bailout when profile data cannot be read for a mixed /Od + /O2 LTCG build.
  • Emit C4744 for extern type mismatches under LTCG.

Linker

  • Fixed a linker crash during incremental pointer calculation.
  • Fixed incremental linking when the /NOEXP option is used.
  • Reduced PDB file size growth in incremental-link scenarios.
  • Improved determinism by masking the PDB age in the PE hash computation.

Static Analysis

  • Added command-line options to configure environment variables for Code Analysis.
  • Fixed several Code Analysis crashes, including one involving throw in a ternary operator.

AddressSanitizer

  • Fix in ASan interception of RtlReAllocateHeap, preventing crashes when re-allocating ASan-owned memory during process termination.

STL

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

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.