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 @@ -438,10 +438,22 @@ Optional Result = HM->LookupFile(Filename, HS.getFileMgr()); if (Result) { FixupSearchPath(); + if (!HS.findUsableModuleForHeader(&Result->getFileEntry(), + Result->getFileEntry().getDir(), + RequestingModule, SuggestedModule, + isSystemHeaderDirectory())) { + return None; + } return *Result; } } else if (auto Res = HS.getFileMgr().getOptionalFileRef(Dest)) { FixupSearchPath(); + if (!HS.findUsableModuleForHeader(&Res->getFileEntry(), + Res->getFileEntry().getDir(), + RequestingModule, SuggestedModule, + isSystemHeaderDirectory())) { + return None; + } return *Res; }