mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge pull request #70274 from adrian-prantl/117824367
Revert "Don't require a strict revision match in LLDB."
This commit is contained in:
@@ -251,8 +251,6 @@ struct SearchPath {
|
|||||||
/// compiled with -enable-ossa-modules.
|
/// compiled with -enable-ossa-modules.
|
||||||
/// \param requiredSDK If not empty, only accept modules built with
|
/// \param requiredSDK If not empty, only accept modules built with
|
||||||
/// a compatible SDK. The StringRef represents the canonical SDK name.
|
/// a compatible SDK. The StringRef represents the canonical SDK name.
|
||||||
/// \param requiresRevisionMatch if true, expects the swift tag to match in
|
|
||||||
/// addition to the module format version number.
|
|
||||||
/// \param[out] extendedInfo If present, will be populated with additional
|
/// \param[out] extendedInfo If present, will be populated with additional
|
||||||
/// compilation options serialized into the AST at build time that may be
|
/// compilation options serialized into the AST at build time that may be
|
||||||
/// necessary to load it properly.
|
/// necessary to load it properly.
|
||||||
@@ -260,7 +258,6 @@ struct SearchPath {
|
|||||||
/// input files the module depends on, if present in INPUT_BLOCK.
|
/// input files the module depends on, if present in INPUT_BLOCK.
|
||||||
ValidationInfo validateSerializedAST(
|
ValidationInfo validateSerializedAST(
|
||||||
StringRef data, bool requiresOSSAModules, StringRef requiredSDK,
|
StringRef data, bool requiresOSSAModules, StringRef requiredSDK,
|
||||||
bool requiresRevisionMatch = true,
|
|
||||||
ExtendedValidationInfo *extendedInfo = nullptr,
|
ExtendedValidationInfo *extendedInfo = nullptr,
|
||||||
SmallVectorImpl<SerializationOptions::FileDependency> *dependencies =
|
SmallVectorImpl<SerializationOptions::FileDependency> *dependencies =
|
||||||
nullptr,
|
nullptr,
|
||||||
|
|||||||
@@ -57,8 +57,7 @@ swift::parseASTSection(MemoryBufferSerializedModuleLoader &Loader,
|
|||||||
// headers. Iterate over all AST modules.
|
// headers. Iterate over all AST modules.
|
||||||
while (!buf.empty()) {
|
while (!buf.empty()) {
|
||||||
auto info = serialization::validateSerializedAST(
|
auto info = serialization::validateSerializedAST(
|
||||||
buf, Loader.isRequiredOSSAModules(), /*requiredSDK*/ StringRef(),
|
buf, Loader.isRequiredOSSAModules(), /*requiredSDK*/StringRef());
|
||||||
/*requiresRevisionMatch*/ false);
|
|
||||||
|
|
||||||
assert(info.name.size() < (2 << 10) && "name failed sanity check");
|
assert(info.name.size() < (2 << 10) && "name failed sanity check");
|
||||||
|
|
||||||
|
|||||||
@@ -3234,8 +3234,7 @@ serialization::Status
|
|||||||
CompilerInvocation::loadFromSerializedAST(StringRef data) {
|
CompilerInvocation::loadFromSerializedAST(StringRef data) {
|
||||||
serialization::ExtendedValidationInfo extendedInfo;
|
serialization::ExtendedValidationInfo extendedInfo;
|
||||||
serialization::ValidationInfo info = serialization::validateSerializedAST(
|
serialization::ValidationInfo info = serialization::validateSerializedAST(
|
||||||
data, getSILOptions().EnableOSSAModules, LangOpts.SDKName,
|
data, getSILOptions().EnableOSSAModules, LangOpts.SDKName, &extendedInfo);
|
||||||
!LangOpts.DebuggerSupport, &extendedInfo);
|
|
||||||
|
|
||||||
if (info.status != serialization::Status::Valid)
|
if (info.status != serialization::Status::Valid)
|
||||||
return info.status;
|
return info.status;
|
||||||
@@ -3271,7 +3270,7 @@ CompilerInvocation::setUpInputForSILTool(
|
|||||||
|
|
||||||
auto result = serialization::validateSerializedAST(
|
auto result = serialization::validateSerializedAST(
|
||||||
fileBufOrErr.get()->getBuffer(), getSILOptions().EnableOSSAModules,
|
fileBufOrErr.get()->getBuffer(), getSILOptions().EnableOSSAModules,
|
||||||
LangOpts.SDKName, !LangOpts.DebuggerSupport, &extendedInfo);
|
LangOpts.SDKName, &extendedInfo);
|
||||||
bool hasSerializedAST = result.status == serialization::Status::Valid;
|
bool hasSerializedAST = result.status == serialization::Status::Valid;
|
||||||
|
|
||||||
if (hasSerializedAST) {
|
if (hasSerializedAST) {
|
||||||
|
|||||||
@@ -211,10 +211,10 @@ namespace path = llvm::sys::path;
|
|||||||
|
|
||||||
static bool serializedASTLooksValid(const llvm::MemoryBuffer &buf,
|
static bool serializedASTLooksValid(const llvm::MemoryBuffer &buf,
|
||||||
bool requiresOSSAModules,
|
bool requiresOSSAModules,
|
||||||
StringRef requiredSDK,
|
StringRef requiredSDK) {
|
||||||
bool requiresRevisionMatch) {
|
auto VI = serialization::validateSerializedAST(buf.getBuffer(),
|
||||||
auto VI = serialization::validateSerializedAST(
|
requiresOSSAModules,
|
||||||
buf.getBuffer(), requiresOSSAModules, requiredSDK, requiresRevisionMatch);
|
requiredSDK);
|
||||||
return VI.status == serialization::Status::Valid;
|
return VI.status == serialization::Status::Valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -462,7 +462,6 @@ public:
|
|||||||
LLVM_DEBUG(llvm::dbgs() << "Validating deps of " << path << "\n");
|
LLVM_DEBUG(llvm::dbgs() << "Validating deps of " << path << "\n");
|
||||||
auto validationInfo = serialization::validateSerializedAST(
|
auto validationInfo = serialization::validateSerializedAST(
|
||||||
buf.getBuffer(), requiresOSSAModules, ctx.LangOpts.SDKName,
|
buf.getBuffer(), requiresOSSAModules, ctx.LangOpts.SDKName,
|
||||||
!ctx.LangOpts.DebuggerSupport,
|
|
||||||
/*ExtendedValidationInfo=*/nullptr, &allDeps);
|
/*ExtendedValidationInfo=*/nullptr, &allDeps);
|
||||||
|
|
||||||
if (validationInfo.status != serialization::Status::Valid) {
|
if (validationInfo.status != serialization::Status::Valid) {
|
||||||
@@ -621,8 +620,7 @@ class ModuleInterfaceLoaderImpl {
|
|||||||
// First, make sure the underlying module path exists and is valid.
|
// First, make sure the underlying module path exists and is valid.
|
||||||
auto modBuf = fs.getBufferForFile(fwd.underlyingModulePath);
|
auto modBuf = fs.getBufferForFile(fwd.underlyingModulePath);
|
||||||
if (!modBuf || !serializedASTLooksValid(*modBuf.get(), requiresOSSAModules,
|
if (!modBuf || !serializedASTLooksValid(*modBuf.get(), requiresOSSAModules,
|
||||||
ctx.LangOpts.SDKName,
|
ctx.LangOpts.SDKName))
|
||||||
!ctx.LangOpts.DebuggerSupport))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Next, check the dependencies in the forwarding file.
|
// Next, check the dependencies in the forwarding file.
|
||||||
@@ -2233,7 +2231,7 @@ bool ExplicitSwiftModuleLoader::canImportModule(
|
|||||||
}
|
}
|
||||||
auto metaData = serialization::validateSerializedAST(
|
auto metaData = serialization::validateSerializedAST(
|
||||||
(*moduleBuf)->getBuffer(), Ctx.SILOpts.EnableOSSAModules,
|
(*moduleBuf)->getBuffer(), Ctx.SILOpts.EnableOSSAModules,
|
||||||
Ctx.LangOpts.SDKName, !Ctx.LangOpts.DebuggerSupport);
|
Ctx.LangOpts.SDKName);
|
||||||
versionInfo->setVersion(metaData.userModuleVersion,
|
versionInfo->setVersion(metaData.userModuleVersion,
|
||||||
ModuleVersionSourceKind::SwiftBinaryModule);
|
ModuleVersionSourceKind::SwiftBinaryModule);
|
||||||
return true;
|
return true;
|
||||||
@@ -2564,7 +2562,7 @@ bool ExplicitCASModuleLoader::canImportModule(
|
|||||||
}
|
}
|
||||||
auto metaData = serialization::validateSerializedAST(
|
auto metaData = serialization::validateSerializedAST(
|
||||||
(*moduleBuf)->getBuffer(), Ctx.SILOpts.EnableOSSAModules,
|
(*moduleBuf)->getBuffer(), Ctx.SILOpts.EnableOSSAModules,
|
||||||
Ctx.LangOpts.SDKName, !Ctx.LangOpts.DebuggerSupport);
|
Ctx.LangOpts.SDKName);
|
||||||
versionInfo->setVersion(metaData.userModuleVersion,
|
versionInfo->setVersion(metaData.userModuleVersion,
|
||||||
ModuleVersionSourceKind::SwiftBinaryModule);
|
ModuleVersionSourceKind::SwiftBinaryModule);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -547,7 +547,7 @@ bool serialization::isSerializedAST(StringRef data) {
|
|||||||
|
|
||||||
ValidationInfo serialization::validateSerializedAST(
|
ValidationInfo serialization::validateSerializedAST(
|
||||||
StringRef data, bool requiresOSSAModules, StringRef requiredSDK,
|
StringRef data, bool requiresOSSAModules, StringRef requiredSDK,
|
||||||
bool requiresRevisionMatch, ExtendedValidationInfo *extendedInfo,
|
ExtendedValidationInfo *extendedInfo,
|
||||||
SmallVectorImpl<SerializationOptions::FileDependency> *dependencies,
|
SmallVectorImpl<SerializationOptions::FileDependency> *dependencies,
|
||||||
SmallVectorImpl<SearchPath> *searchPaths) {
|
SmallVectorImpl<SearchPath> *searchPaths) {
|
||||||
ValidationInfo result;
|
ValidationInfo result;
|
||||||
@@ -590,7 +590,7 @@ ValidationInfo serialization::validateSerializedAST(
|
|||||||
result = validateControlBlock(
|
result = validateControlBlock(
|
||||||
cursor, scratch,
|
cursor, scratch,
|
||||||
{SWIFTMODULE_VERSION_MAJOR, SWIFTMODULE_VERSION_MINOR},
|
{SWIFTMODULE_VERSION_MAJOR, SWIFTMODULE_VERSION_MINOR},
|
||||||
requiresOSSAModules, requiresRevisionMatch,
|
requiresOSSAModules, /*requiresRevisionMatch=*/true,
|
||||||
requiredSDK,
|
requiredSDK,
|
||||||
extendedInfo, localObfuscator);
|
extendedInfo, localObfuscator);
|
||||||
if (result.status != Status::Valid)
|
if (result.status != Status::Valid)
|
||||||
|
|||||||
@@ -1389,7 +1389,7 @@ bool SerializedModuleLoaderBase::canImportModule(
|
|||||||
if (swiftInterfaceVersion.empty() && moduleInputBuffer) {
|
if (swiftInterfaceVersion.empty() && moduleInputBuffer) {
|
||||||
auto metaData = serialization::validateSerializedAST(
|
auto metaData = serialization::validateSerializedAST(
|
||||||
moduleInputBuffer->getBuffer(), Ctx.SILOpts.EnableOSSAModules,
|
moduleInputBuffer->getBuffer(), Ctx.SILOpts.EnableOSSAModules,
|
||||||
Ctx.LangOpts.SDKName, !Ctx.LangOpts.DebuggerSupport);
|
Ctx.LangOpts.SDKName);
|
||||||
versionInfo->setVersion(metaData.userModuleVersion,
|
versionInfo->setVersion(metaData.userModuleVersion,
|
||||||
ModuleVersionSourceKind::SwiftBinaryModule);
|
ModuleVersionSourceKind::SwiftBinaryModule);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ static bool validateModule(
|
|||||||
llvm::SmallVectorImpl<swift::serialization::SearchPath> &searchPaths) {
|
llvm::SmallVectorImpl<swift::serialization::SearchPath> &searchPaths) {
|
||||||
info = swift::serialization::validateSerializedAST(
|
info = swift::serialization::validateSerializedAST(
|
||||||
data, requiresOSSAModules,
|
data, requiresOSSAModules,
|
||||||
/*requiredSDK*/ StringRef(), /*requiresRevisionMatch*/ false,
|
/*requiredSDK*/ StringRef(), &extendedInfo, /* dependencies*/ nullptr,
|
||||||
&extendedInfo, /* dependencies*/ nullptr, &searchPaths);
|
&searchPaths);
|
||||||
if (info.status != swift::serialization::Status::Valid) {
|
if (info.status != swift::serialization::Status::Valid) {
|
||||||
llvm::outs() << "error: validateSerializedAST() failed\n";
|
llvm::outs() << "error: validateSerializedAST() failed\n";
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user