Lines Matching defs:Mod
58 void ModuleMap::resolveLinkAsDependencies(Module *Mod) {
59 auto PendingLinkAs = PendingLinkAsModule.find(Mod->Name);
69 void ModuleMap::addLinkAsDependency(Module *Mod) {
70 if (findModule(Mod->ExportAsModule))
71 Mod->UseExportAsModuleLinkName = true;
73 PendingLinkAsModule[Mod->ExportAsModule].insert(Mod->Name);
114 ModuleMap::resolveExport(Module *Mod,
124 Module *Context = resolveModuleId(Unresolved.Id, Mod, Complain);
131 Module *ModuleMap::resolveModuleId(const ModuleId &Id, Module *Mod,
134 Module *Context = lookupModuleUnqualified(Id[0].first, Mod);
138 << Id[0].first << Mod->getFullModuleName();
163 static void appendSubframeworkPaths(Module *Mod,
167 for (; Mod; Mod = Mod->Parent) {
168 if (Mod->IsFramework)
169 Paths.push_back(Mod->Name);
295 void ModuleMap::resolveHeader(Module *Mod,
300 findHeader(Mod, Header, RelativePathName, NeedsFramework)) {
308 setUmbrellaHeaderAsWritten(Mod, *File, Header.FileName,
313 addHeader(Mod, H, headerKindToRole(Header.Kind));
323 Mod->MissingHeaders.push_back(Header);
329 Mod->markUnavailable(/*Unimportable=*/false);
334 Module *Mod, const Module::UnresolvedHeaderDirective &Header) {
337 Mod->isPartOfFramework() || !Mod->IsSystem || Header.IsUmbrella ||
338 !BuiltinIncludeDir || BuiltinIncludeDir == Mod->Directory ||
353 addHeader(Mod, H, Role);
981 static void inferFrameworkLink(Module *Mod) {
982 assert(Mod->IsFramework && "Can only infer linking for framework modules");
983 assert(!Mod->isSubFramework() &&
986 StringRef FrameworkName(Mod->Name);
988 Mod->LinkLibraries.push_back(Module::LinkLibrary(FrameworkName.str(),
1016 if (Module *Mod = lookupModuleQualified(ModuleName, Parent))
1017 return Mod;
1187 Module *Mod, FileEntryRef UmbrellaHeader, const Twine &NameAsWritten,
1189 Headers[UmbrellaHeader].push_back(KnownHeader(Mod, NormalHeader));
1190 Mod->Umbrella = UmbrellaHeader;
1191 Mod->UmbrellaAsWritten = NameAsWritten.str();
1192 Mod->UmbrellaRelativeToRootModuleDirectory =
1194 UmbrellaDirs[UmbrellaHeader.getDir()] = Mod;
1202 Module *Mod, DirectoryEntryRef UmbrellaDir, const Twine &NameAsWritten,
1204 Mod->Umbrella = UmbrellaDir;
1205 Mod->UmbrellaAsWritten = NameAsWritten.str();
1206 Mod->UmbrellaRelativeToRootModuleDirectory =
1208 UmbrellaDirs[UmbrellaDir] = Mod;
1211 void ModuleMap::addUnresolvedHeader(Module *Mod,
1216 if (resolveAsBuiltinHeader(Mod, Header)) {
1235 LazyHeadersByModTime[*Header.ModTime].push_back(Mod);
1237 LazyHeadersBySize[*Header.Size].push_back(Mod);
1238 Mod->UnresolvedHeaders.push_back(Header);
1244 resolveHeader(Mod, Header, NeedsFramework);
1264 Module *Mod, std::optional<const FileEntry *> File) const {
1270 for (auto &Header : Mod->UnresolvedHeaders) {
1277 const_cast<ModuleMap *>(this)->resolveHeader(Mod, Header, NeedsFramework);
1279 Mod->UnresolvedHeaders.swap(NewHeaders);
1282 void ModuleMap::addHeader(Module *Mod, Module::Header Header,
1284 KnownHeader KH(Mod, Role);
1294 Mod->Headers[headerRoleToKind(Role)].push_back(Header);
1296 bool isCompilingModuleHeader = Mod->isForBuilding(LangOpts);
1399 bool ModuleMap::resolveExports(Module *Mod, bool Complain) {
1400 auto Unresolved = std::move(Mod->UnresolvedExports);
1401 Mod->UnresolvedExports.clear();
1403 Module::ExportDecl Export = resolveExport(Mod, UE, Complain);
1405 Mod->Exports.push_back(Export);
1407 Mod->UnresolvedExports.push_back(UE);
1409 return !Mod->UnresolvedExports.empty();
1412 bool ModuleMap::resolveUses(Module *Mod, bool Complain) {
1413 auto *Top = Mod->getTopLevelModule();
1426 bool ModuleMap::resolveConflicts(Module *Mod, bool Complain) {
1427 auto Unresolved = std::move(Mod->UnresolvedConflicts);
1428 Mod->UnresolvedConflicts.clear();
1430 if (Module *OtherMod = resolveModuleId(UC.Id, Mod, Complain)) {
1434 Mod->Conflicts.push_back(Conflict);
1436 Mod->UnresolvedConflicts.push_back(UC);
1438 return !Mod->UnresolvedConflicts.empty();