mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[Serialization] Soft-reject swiftmodules built against a different SDK
Change the way swiftmodules built against a different SDK than their clients are rejected. This makes them silently ignored when the module can be rebuilt from their swiftinterface, instead of reporting a hard error. rdar://93257769
This commit is contained in:
@@ -402,7 +402,7 @@ llvm::ErrorOr<ModuleDependencies> SerializedModuleLoaderBase::scanModuleFile(
|
||||
bool isFramework = false;
|
||||
serialization::ValidationInfo loadInfo = ModuleFileSharedCore::load(
|
||||
modulePath.str(), std::move(moduleBuf.get()), nullptr, nullptr,
|
||||
isFramework, isRequiredOSSAModules(),
|
||||
isFramework, isRequiredOSSAModules(), Ctx.LangOpts.SDKName,
|
||||
Ctx.SearchPathOpts.DeserializedPathRecoverer,
|
||||
loadedModuleFile);
|
||||
|
||||
@@ -753,7 +753,7 @@ LoadedFile *SerializedModuleLoaderBase::loadAST(
|
||||
serialization::ValidationInfo loadInfo = ModuleFileSharedCore::load(
|
||||
moduleInterfacePath, std::move(moduleInputBuffer),
|
||||
std::move(moduleDocInputBuffer), std::move(moduleSourceInfoInputBuffer),
|
||||
isFramework, isRequiredOSSAModules(),
|
||||
isFramework, isRequiredOSSAModules(), Ctx.LangOpts.SDKName,
|
||||
Ctx.SearchPathOpts.DeserializedPathRecoverer,
|
||||
loadedModuleFileCore);
|
||||
SerializedASTFile *fileUnit = nullptr;
|
||||
@@ -1176,7 +1176,8 @@ bool SerializedModuleLoaderBase::canImportModule(ImportPath::Module path,
|
||||
// format, if present.
|
||||
if (currentVersion.empty() && *unusedModuleBuffer) {
|
||||
auto metaData = serialization::validateSerializedAST(
|
||||
(*unusedModuleBuffer)->getBuffer(), Ctx.SILOpts.EnableOSSAModules);
|
||||
(*unusedModuleBuffer)->getBuffer(), Ctx.SILOpts.EnableOSSAModules,
|
||||
Ctx.LangOpts.SDKName);
|
||||
currentVersion = metaData.userModuleVersion;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user