llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Ian Anderson (ian-twilightcoder) <details> <summary>Changes</summary> HeaderSearch::MarkFileModuleHeader is no longer properly checking for no-changes, and so creates a new HeaderFileInfo for every `textual header`, causes PCM use to go ballistic. --- Full diff: https://github.com/llvm/llvm-project/pull/89005.diff 1 Files Affected: - (modified) clang/lib/Lex/HeaderSearch.cpp (+9-1) ``````````diff diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp index 0632882b296146..9409b97ba0e64a 100644 --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/clang/lib/Lex/HeaderSearch.cpp @@ -1313,6 +1313,14 @@ OptionalFileEntryRef HeaderSearch::LookupSubframeworkHeader( // File Info Management. //===----------------------------------------------------------------------===// +static bool +headerFileInfoModuleBitsMatchRole(const HeaderFileInfo *HFI, + ModuleMap::ModuleHeaderRole Role) { + return (HFI->isModuleHeader == ModuleMap::isModular(Role)) && + (HFI->isTextualModuleHeader == + ((Role & ModuleMap::TextualHeader) != 0)); +} + static void mergeHeaderFileInfoModuleBits(HeaderFileInfo &HFI, bool isModuleHeader, bool isTextualModuleHeader) { @@ -1432,7 +1440,7 @@ void HeaderSearch::MarkFileModuleHeader(FileEntryRef FE, if ((Role & ModuleMap::ExcludedHeader)) return; auto *HFI = getExistingFileInfo(FE); - if (HFI && HFI->isModuleHeader) + if (HFI && headerFileInfoModuleBitsMatchRole(HFI, Role)) return; } `````````` </details> https://github.com/llvm/llvm-project/pull/89005 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits