This article describes a hotfix package for Microsoft Visual Studio 2015 Update 3. The hotfix contains several fixes to the Visual C++ optimizer and code generator (c2.dll). For more information, see the "Issues that are fixed in this hotfix" section.
How to obtain this hotfixThe following file is available for download from the Microsoft Download Center:
Download the hotfix package now.
For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:
119591 How to obtain Microsoft support files from online servicesMicrosoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.
PrerequisitesTo apply this hotfix, you must have Visual Studio 2015 Update 3 installed.
Restart requirementYou may have to restart the computer after you apply this hotfix if no instance of Visual Studio is being used.
Hotfix replacement informationThis hotfix doesn't replace other hotfixes.
The following Connect bugs are all resolved by this hotfix:
- Fixes a bug in the optimizer when hoisting a loop-variant conditional store outside a loop.
- Fixes four integer division bugs in the optimizer:
- Fixes a stack overflow in the optimizer.
- Fixes an issue that occurs when you remove a redundant floating point conversion.
- Fixes a crash in the optimizer when splitting flow graph nodes in a default statement of a switch block.
- Fixes a bug in the loop optimizer where we perform incorrect strength reduction of unsigned secondary induction variables that are multiples of the primary induction variable.
- Offers a workaround for C4883 "
: function size suppresses optimizations".
- Fixes for a compiler crash in c2!PpCanPropagateForward when you perform optimizations on x64.
- Fixes for loop optimizer bugs which involve incorrect induction variable strength reduction.
- Fixes for incorrect reordering of expressions which involve reads & writes to memory because of incorrect alias checking.
- Fixes for a register allocator bug which involves a compiler-generated temporary existing across multiple exception handling regions.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Article ID: 3207317 - Last Review: Feb 1, 2017 - Revision: 2