diff options
-rw-r--r-- | clang/include/clang/Lex/HeaderSearchOptions.h | 1 | ||||
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 8 | ||||
-rw-r--r-- | clang/lib/Serialization/GeneratePCH.cpp | 7 |
3 files changed, 9 insertions, 7 deletions
diff --git a/clang/include/clang/Lex/HeaderSearchOptions.h b/clang/include/clang/Lex/HeaderSearchOptions.h index 7a16926..68308f5 100644 --- a/clang/include/clang/Lex/HeaderSearchOptions.h +++ b/clang/include/clang/Lex/HeaderSearchOptions.h @@ -235,6 +235,7 @@ public: /// 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 b2d8d12..756ae10 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 46ab1be..77317f0 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()) |