August 13th, 2026
heart1 reaction

MSVC Build Tools Preview updates – August 2026

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 whether it is installed, make sure one or both of these components are selected in the Visual Studio Installer:

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

Follow the instructions at https://aka.ms/msvc/preview to configure your IDE and 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.36615 / 14.52.36615.

We appreciate your feedback. Please report issues through Visual Studio Developer Community so we can address them before the toolset moves out of preview.

C++ Conformance and Frontend

  • Added support for default-initialized new[] expressions in constant evaluation when used with modules.
  • Improved diagnostics for calling-convention mismatches, incompatible compiler options, and unusable compiled-library files.
  • Improved handling of argument-dependent lookup involving names that are not exported from a module.
  • Improved parser robustness during nested template and module instantiation.
  • Improved consistency when writing class data-member information to modules.
  • Added missing math intrinsics and improved math-header handling with modules, advancing compile-time support.

C++ Modules

  • Improved type merging when header units are shared across multiple modules.
  • Improved module serialization of data members and template information.
  • Fixed incremental processing of shared module data when invoked more than once.
  • Improved handling of compile-time array allocation in module code.

Code Generation and Optimization

ARM64 improvements:

  • Added support for Armv9.2 LUTI2 lookup-table instructions and corresponding intrinsics.
  • Recognized common vector permutation and per-lane rotation patterns, replacing longer instruction sequences with more efficient operations.
  • Improved generation of vector loads followed by lane insertion.
  • Improved preservation of adjacent load pairs during register allocation.
  • Improved tracking of used vector lanes through scalar floating-point operations, allowing more redundant instructions to be removed.
  • Improved immediate forms for vector bit-clear operations.
  • Prevented unsafe pairing of store-with-writeback instructions when an operand shares the base register.

x64 and x86 improvements:

  • Expanded instruction selection for APX operations, including additional destination forms and removal of redundant zero-extension operations.
  • Improved conditional-compare generation with APX.
  • Improved generation of all-bits-set vector constants.
  • Improved tail-call handling for functions with paired register operations.
  • Added a recursion limit to prevent excessive processing during partial-register optimization.

Optimizer improvements:

  • Improved jump-to-jump optimizations and allowed more opportunities when local scope information is present.
  • Improved scalar-promotion induction-variable recognition.
  • Improved optimization of equality-test loops with loop-carried dependencies.
  • Preserved more useful predicates during optimization.
  • Improved optimization around restricted pointers and function calls.
  • Improved simplification of overflow intrinsics while preserving signedness.
  • Enabled inline expansion of fmin, fmax, and copysign on additional targets.

Debug Information

  • Continued work to support larger debug-information streams, including groundwork for streams up to 4 GB.
  • Added a way for debugger clients to release debug-database file handles without immediately discarding loaded data, allowing the file to be rebuilt sooner.
  • Improved diagnostics produced by debug-information inspection tools.
  • Improved type merging for programs that use header units and modules.

Linker and Assembler

  • Correctly quoted paths passed through the linker’s /EDIT option when output paths contain spaces.
  • Added support for the int1 instruction to the assembler and disassembly tools.
  • Improved handling of large function prologs and epilogs in x64 exception data.
  • Fixed an assembler crash caused by an invalid section identifier.
  • Improved unwinding support for newer epilog formats.

Static Analysis

  • Expanded code-analysis coverage across more components of the toolset.
  • Fixed uninitialized-variable warnings in ATL and MFC sources.
  • Reduced noisy C5246 diagnostics involving constant evaluation.

AddressSanitizer

  • Use MSDIS (MSVC disassembler) as a fallback instruction-length decoder for interception, reducing “unrecognized instruction” failures. This is on by default and can be disabled via ASAN_OPTIONS=windows_use_msdis_decoder=false . To trace what instructions were intercepted by MSDIS instead of the manual instruction decoder, set verbosity=3 and search for logs prefixed with “MSDIS instruction decoder:”.
  • Added a diagnostic for incompatible use of AddressSanitizer with /clr.

Standard Library

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.

0 comments