[cxx-interop] compilations that do not enable C++ interoperability should not be able to import modules that do enable C++ interoperability by default

A supplemental hidden frontend option allows advanced users to opt-out of this requirement.

Fixes https://github.com/apple/swift/issues/65833
Fixes https://github.com/apple/swift/issues/65832
This commit is contained in:
Alex Lorenz
2023-06-07 15:06:06 -07:00
parent 4d1d8a9de5
commit ba8d4d7801
18 changed files with 104 additions and 7 deletions

View File

@@ -386,8 +386,11 @@ private:
/// \c true if this module was built with complete checking for concurrency.
unsigned IsConcurrencyChecked: 1;
/// Whether this module is built with C++ interoperability enabled.
unsigned HasCxxInteroperability : 1;
// Explicitly pad out to the next word boundary.
unsigned : 4;
unsigned : 3;
} Bits = {};
static_assert(sizeof(ModuleBits) <= 8, "The bit set should be small");