We have just released an out-of-band update of Clang/C2 toolset that brings in some of the community fixes as well as bugs found from testing. This is one of many rapid releases to come in the future, and issues reported from customers will be addressed progressively. Here we only list the changes since the previous release, for a more detailed discussion of the Clang/C2 toolset please read “Clang with Microsoft CodeGen in VS 2015 1“.

This update is still based on Clang 3.7 with some of the relevant community fixes cherry-picked (see below) and revises the version of C2.dll to 19.023413.0.

Microsoft Fixes

Fixed silent bad codegen with std::atomic_flag

Fixed “Static Library for Universal Windows” template to work out of the box with Clang/C2 toolset when targeting ARM

Fixed overwriting of a shared Clang targets definition file when both Clang/C2 and Android MDD are installed

Changed defaults in Clang/C2 templates to better reflect typical changes when converting from “Visual Studio 2015 (v140)” toolset (EH enabled, PCH disabled by default)

Community Fixes

r254346 [PR25661] Revert part of r217213 according to r254323. r254323 [MS Compat] Adjust thiscall to cdecl when deducing template arguments r253843 [MS ABI] Tolerate invokes of __RTDynamicCast r253523 [MS ABI] Let arbitrary entities participate in vftable ordering r253013 [Sema] __is_constructible should return false for function types r252120 Fix build break. Required with r252115 pick r252115 [Lex] Add __has_builtin support for __make_integer_seq. r252036 [Sema] Implement __make_integer_seq r247619 PR24595: Ignore calling convention modifiers for structors in MS ABI.

Control Panel -> Programs -> Programs and Features

Right click on “Microsoft Visual Studio Enterprise 2015”

Click “Change”

Click “Modify”

Select “Clang with Microsoft CodeGen (January 2016)”. The previous release would be marked as “Deprecated”.

Bug Reporting

When submitting bug reports that are specific to Clang/C2 (i.e. they are not reproducible in Clang/LLVM), make sure to: