[Serialization] Minor ModuleFile/ModuleFileSharedCore improvements

* Add properties to ModuleFile which holds information from the control
  block.
* 'ExtendedValidationInfo' parameter for 'ModuleFileSharedCore::load()'
  cannot be 'nullptr'. Make it non-defaulted Rvalue reference.
This commit is contained in:
Rintaro Ishizaki
2020-09-01 10:10:03 -07:00
parent e524b1cb62
commit b7c19656ab
5 changed files with 52 additions and 18 deletions

View File

@@ -1088,7 +1088,7 @@ ModuleFileSharedCore::ModuleFileSharedCore(
std::unique_ptr<llvm::MemoryBuffer> moduleDocInputBuffer,
std::unique_ptr<llvm::MemoryBuffer> moduleSourceInfoInputBuffer,
bool isFramework, serialization::ValidationInfo &info,
serialization::ExtendedValidationInfo *extInfo)
serialization::ExtendedValidationInfo &extInfo)
: ModuleInputBuffer(std::move(moduleInputBuffer)),
ModuleDocInputBuffer(std::move(moduleDocInputBuffer)),
ModuleSourceInfoInputBuffer(std::move(moduleSourceInfoInputBuffer)) {
@@ -1137,7 +1137,7 @@ ModuleFileSharedCore::ModuleFileSharedCore(
info = validateControlBlock(cursor, scratch,
{SWIFTMODULE_VERSION_MAJOR,
SWIFTMODULE_VERSION_MINOR},
extInfo);
&extInfo);
if (info.status != Status::Valid) {
error(info.status);
return;
@@ -1145,7 +1145,11 @@ ModuleFileSharedCore::ModuleFileSharedCore(
Name = info.name;
TargetTriple = info.targetTriple;
CompatibilityVersion = info.compatibilityVersion;
IsSIB = extInfo->isSIB();
Bits.ArePrivateImportsEnabled = extInfo.arePrivateImportsEnabled();
Bits.IsSIB = extInfo.isSIB();
Bits.IsTestable = extInfo.isTestable();
Bits.ResilienceStrategy = unsigned(extInfo.getResilienceStrategy());
Bits.IsImplicitDynamicEnabled = extInfo.isImplicitDynamicEnabled();
MiscVersion = info.miscVersion;
hasValidControlBlock = true;