During Package CMO, SIL cloning happens during which

SILOptions::EnableSerializePackage info is lost.

SILVerifier needs this info to determine whether resilience
can be bypassed for decls serialized in a resiliently
built module when Package CMO optimization enabled.

This PR adds SerializePackageEnabled bit to Module format
and uses that in SILVerifier.

Resolves rdar://126157356
This commit is contained in:
Ellie Shin
2024-04-17 22:16:18 -07:00
parent 4b440a1d80
commit fbb3382e21
13 changed files with 304 additions and 54 deletions

View File

@@ -1382,6 +1382,8 @@ ModuleDecl *CompilerInstance::getMainModule() const {
MainModule->setHasCxxInteroperability();
if (Invocation.getLangOptions().AllowNonResilientAccess)
MainModule->setAllowNonResilientAccess();
if (Invocation.getSILOptions().EnableSerializePackage)
MainModule->setSerializePackageEnabled();
// Register the main module with the AST context.
Context->addLoadedModule(MainModule);