Lines Matching defs:Mod
56 void ModuleMap::resolveLinkAsDependencies(Module *Mod) {
57 auto PendingLinkAs = PendingLinkAsModule.find(Mod->Name);
67 void ModuleMap::addLinkAsDependency(Module *Mod) {
68 if (findModule(Mod->ExportAsModule))
69 Mod->UseExportAsModuleLinkName = true;
71 PendingLinkAsModule[Mod->ExportAsModule].insert(Mod->Name);
112 ModuleMap::resolveExport(Module *Mod,
122 Module *Context = resolveModuleId(Unresolved.Id, Mod, Complain);
129 Module *ModuleMap::resolveModuleId(const ModuleId &Id, Module *Mod,
132 Module *Context = lookupModuleUnqualified(Id[0].first, Mod);
136 << Id[0].first << Mod->getFullModuleName();
161 static void appendSubframeworkPaths(Module *Mod,
165 for (; Mod; Mod = Mod->Parent) {
166 if (Mod->IsFramework)
167 Paths.push_back(Mod->Name);
293 void ModuleMap::resolveHeader(Module *Mod,
298 findHeader(Mod, Header, RelativePathName, NeedsFramework)) {
306 setUmbrellaHeaderAsWritten(Mod, *File, Header.FileName,
311 addHeader(Mod, H, headerKindToRole(Header.Kind));
321 Mod->MissingHeaders.push_back(Header);
327 Mod->markUnavailable(/*Unimportable=*/false);
332 Module *Mod, const Module::UnresolvedHeaderDirective &Header) {
335 Mod->isPartOfFramework() || !Mod->IsSystem || Header.IsUmbrella ||
336 !BuiltinIncludeDir || BuiltinIncludeDir == Mod->Directory ||
351 addHeader(Mod, H, Role);
998 static void inferFrameworkLink(Module *Mod) {
999 assert(Mod->IsFramework && "Can only infer linking for framework modules");
1000 assert(!Mod->isSubFramework() &&
1003 StringRef FrameworkName(Mod->Name);
1005 Mod->LinkLibraries.push_back(Module::LinkLibrary(FrameworkName.str(),
1033 if (Module *Mod = lookupModuleQualified(ModuleName, Parent))
1034 return Mod;
1204 Module *Mod, FileEntryRef UmbrellaHeader, const Twine &NameAsWritten,
1206 Headers[UmbrellaHeader].push_back(KnownHeader(Mod, NormalHeader));
1207 Mod->Umbrella = UmbrellaHeader;
1208 Mod->UmbrellaAsWritten = NameAsWritten.str();
1209 Mod->UmbrellaRelativeToRootModuleDirectory =
1211 UmbrellaDirs[UmbrellaHeader.getDir()] = Mod;
1219 Module *Mod, DirectoryEntryRef UmbrellaDir, const Twine &NameAsWritten,
1221 Mod->Umbrella = UmbrellaDir;
1222 Mod->UmbrellaAsWritten = NameAsWritten.str();
1223 Mod->UmbrellaRelativeToRootModuleDirectory =
1225 UmbrellaDirs[UmbrellaDir] = Mod;
1228 void ModuleMap::addUnresolvedHeader(Module *Mod,
1233 if (resolveAsBuiltinHeader(Mod, Header)) {
1252 LazyHeadersByModTime[*Header.ModTime].push_back(Mod);
1254 LazyHeadersBySize[*Header.Size].push_back(Mod);
1255 Mod->UnresolvedHeaders.push_back(Header);
1261 resolveHeader(Mod, Header, NeedsFramework);
1281 Module *Mod, std::optional<const FileEntry *> File) const {
1287 for (auto &Header : Mod->UnresolvedHeaders) {
1294 const_cast<ModuleMap *>(this)->resolveHeader(Mod, Header, NeedsFramework);
1296 Mod->UnresolvedHeaders.swap(NewHeaders);
1299 void ModuleMap::addHeader(Module *Mod, Module::Header Header,
1301 KnownHeader KH(Mod, Role);
1313 Mod->addHeader(headerRoleToKind(Role), std::move(Header));
1315 bool isCompilingModuleHeader = Mod->isForBuilding(LangOpts);
1417 bool ModuleMap::resolveExports(Module *Mod, bool Complain) {
1418 auto Unresolved = std::move(Mod->UnresolvedExports);
1419 Mod->UnresolvedExports.clear();
1421 Module::ExportDecl Export = resolveExport(Mod, UE, Complain);
1423 Mod->Exports.push_back(Export);
1425 Mod->UnresolvedExports.push_back(UE);
1427 return !Mod->UnresolvedExports.empty();
1430 bool ModuleMap::resolveUses(Module *Mod, bool Complain) {
1431 auto *Top = Mod->getTopLevelModule();
1444 bool ModuleMap::resolveConflicts(Module *Mod, bool Complain) {
1445 auto Unresolved = std::move(Mod->UnresolvedConflicts);
1446 Mod->UnresolvedConflicts.clear();
1448 if (Module *OtherMod = resolveModuleId(UC.Id, Mod, Complain)) {
1452 Mod->Conflicts.push_back(Conflict);
1454 Mod->UnresolvedConflicts.push_back(UC);
1456 return !Mod->UnresolvedConflicts.empty();