Author: Jan Svoboda Date: 2025-03-21T13:52:12-07:00 New Revision: 7606f6773cb5abe701b615b0bec54e68758955d7
URL: https://github.com/llvm/llvm-project/commit/7606f6773cb5abe701b615b0bec54e68758955d7 DIFF: https://github.com/llvm/llvm-project/commit/7606f6773cb5abe701b615b0bec54e68758955d7.diff LOG: [clang] NFCI: Mutate `HeaderSearchOptions` earlier (#130823) Added: Modified: clang/include/clang/Lex/HeaderSearchOptions.h clang/lib/Frontend/CompilerInvocation.cpp clang/lib/Serialization/GeneratePCH.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Lex/HeaderSearchOptions.h b/clang/include/clang/Lex/HeaderSearchOptions.h index 7a16926c186d2..68308f5693ac6 100644 --- a/clang/include/clang/Lex/HeaderSearchOptions.h +++ b/clang/include/clang/Lex/HeaderSearchOptions.h @@ -235,6 +235,7 @@ class HeaderSearchOptions { /// Whether to entirely skip writing diagnostic options. /// Primarily used to speed up deserialization during dependency scanning. + /// FIXME: Consider moving these into separate `SerializationOptions` class. LLVM_PREFERRED_TYPE(bool) unsigned ModulesSkipDiagnosticOptions : 1; diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index b2d8d124a3a6f..756ae10e0e635 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -4971,6 +4971,14 @@ bool CompilerInvocation::CreateFromArgsImpl( llvm::Triple T(Res.getTargetOpts().Triple); ParseHeaderSearchArgs(Res.getHeaderSearchOpts(), Args, Diags, Res.getFileSystemOpts().WorkingDir); + if (Res.getFrontendOpts().GenReducedBMI || + Res.getFrontendOpts().ProgramAction == + frontend::GenerateReducedModuleInterface || + Res.getFrontendOpts().ProgramAction == + frontend::GenerateModuleInterface) { + Res.getHeaderSearchOpts().ModulesSkipDiagnosticOptions = true; + Res.getHeaderSearchOpts().ModulesSkipHeaderSearchPaths = true; + } ParseAPINotesArgs(Res.getAPINotesOpts(), Args, Diags); ParsePointerAuthArgs(LangOpts, Args, Diags); diff --git a/clang/lib/Serialization/GeneratePCH.cpp b/clang/lib/Serialization/GeneratePCH.cpp index 46ab1be39902a..77317f0a1db32 100644 --- a/clang/lib/Serialization/GeneratePCH.cpp +++ b/clang/lib/Serialization/GeneratePCH.cpp @@ -120,13 +120,6 @@ Module *CXX20ModulesGenerator::getEmittingModule(ASTContext &Ctx) { } void CXX20ModulesGenerator::HandleTranslationUnit(ASTContext &Ctx) { - // FIMXE: We'd better to wrap such options to a new class ASTWriterOptions - // since this is not about searching header really. - HeaderSearchOptions &HSOpts = - getPreprocessor().getHeaderSearchInfo().getHeaderSearchOpts(); - HSOpts.ModulesSkipDiagnosticOptions = true; - HSOpts.ModulesSkipHeaderSearchPaths = true; - PCHGenerator::HandleTranslationUnit(Ctx); if (!isComplete()) _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
