🍒[cxx-interop] Modularize __msvc_bit_utils on Windows #76887
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Explanation:
__msvc_bit_utils.hpp
was added in a recent version of MSVC, and it is causing build errors for SwiftCompilerSources:This change references the
__msvc_bit_utils.hpp
header from the modulemap. Since we still need to support older versions of Visual Studio that do not provide__msvc_bit_utils.hpp
, this also teaches ClangImporter to inject an empty header file named__msvc_bit_utils.hpp
into the system include directory, unless it already exists.Scope: ClangImporter logic that injects modulemaps into system headers on Windows was changed, along with the modulemap for Microsoft STL.
Risk: Low, this is a Windows-only change.
Testing: Added a compiler test.
Issue: rdar://137066642
Reviewer: @compnerd @Xazax-hun
Original PR: #76823