akyrtzi created this revision. Herald added a project: All. akyrtzi requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Without marking the `HeaderFileInfo` as resolved the `FileEntries` of files that were not found in `ExternalSource` are looked up in `ExternalSource` over and over again. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D129524 Files: clang/lib/Lex/HeaderSearch.cpp Index: clang/lib/Lex/HeaderSearch.cpp =================================================================== --- clang/lib/Lex/HeaderSearch.cpp +++ clang/lib/Lex/HeaderSearch.cpp @@ -1284,9 +1284,9 @@ HeaderFileInfo *HFI = &FileInfo[FE->getUID()]; // FIXME: Use a generation count to check whether this is really up to date. if (ExternalSource && !HFI->Resolved) { + HFI->Resolved = true; auto ExternalHFI = ExternalSource->GetHeaderFileInfo(FE); if (ExternalHFI.IsValid) { - HFI->Resolved = true; if (ExternalHFI.External) mergeHeaderFileInfo(*HFI, ExternalHFI); } @@ -1316,9 +1316,9 @@ if (!WantExternal && (!HFI->IsValid || HFI->External)) return nullptr; if (!HFI->Resolved) { + HFI->Resolved = true; auto ExternalHFI = ExternalSource->GetHeaderFileInfo(FE); if (ExternalHFI.IsValid) { - HFI->Resolved = true; if (ExternalHFI.External) mergeHeaderFileInfo(*HFI, ExternalHFI); }
Index: clang/lib/Lex/HeaderSearch.cpp =================================================================== --- clang/lib/Lex/HeaderSearch.cpp +++ clang/lib/Lex/HeaderSearch.cpp @@ -1284,9 +1284,9 @@ HeaderFileInfo *HFI = &FileInfo[FE->getUID()]; // FIXME: Use a generation count to check whether this is really up to date. if (ExternalSource && !HFI->Resolved) { + HFI->Resolved = true; auto ExternalHFI = ExternalSource->GetHeaderFileInfo(FE); if (ExternalHFI.IsValid) { - HFI->Resolved = true; if (ExternalHFI.External) mergeHeaderFileInfo(*HFI, ExternalHFI); } @@ -1316,9 +1316,9 @@ if (!WantExternal && (!HFI->IsValid || HFI->External)) return nullptr; if (!HFI->Resolved) { + HFI->Resolved = true; auto ExternalHFI = ExternalSource->GetHeaderFileInfo(FE); if (ExternalHFI.IsValid) { - HFI->Resolved = true; if (ExternalHFI.External) mergeHeaderFileInfo(*HFI, ExternalHFI); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits