diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/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); }