Author: Chuanqi Xu Date: 2023-12-07T16:54:00+08:00 New Revision: b768b393429419d27e3f76518842136bac9d5b25
URL: https://github.com/llvm/llvm-project/commit/b768b393429419d27e3f76518842136bac9d5b25 DIFF: https://github.com/llvm/llvm-project/commit/b768b393429419d27e3f76518842136bac9d5b25.diff LOG: [C++20] [Modules] Skip Writing diagnostic options, header search paths and pragma diagnostic mappings It simply wastes of space and time to write diagnostic options, header search paths and pragma diagnostic mappings for C++20 Named modules. This patch tries to avoid the unnecessary writings. Added: Modified: clang/include/clang/Frontend/FrontendActions.h clang/lib/Frontend/FrontendActions.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Frontend/FrontendActions.h b/clang/include/clang/Frontend/FrontendActions.h index 3940e00eeb8db..fcce31ac0590f 100644 --- a/clang/include/clang/Frontend/FrontendActions.h +++ b/clang/include/clang/Frontend/FrontendActions.h @@ -151,6 +151,9 @@ class GenerateModuleInterfaceAction : public GenerateModuleAction { private: bool BeginSourceFileAction(CompilerInstance &CI) override; + std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) override; + std::unique_ptr<raw_pwrite_stream> CreateOutputFile(CompilerInstance &CI, StringRef InFile) override; }; diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index 2afcf1cf9f68c..c1d6e71455365 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -258,6 +258,16 @@ bool GenerateModuleInterfaceAction::BeginSourceFileAction( return GenerateModuleAction::BeginSourceFileAction(CI); } +std::unique_ptr<ASTConsumer> +GenerateModuleInterfaceAction::CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) { + CI.getHeaderSearchOpts().ModulesSkipDiagnosticOptions = true; + CI.getHeaderSearchOpts().ModulesSkipHeaderSearchPaths = true; + CI.getHeaderSearchOpts().ModulesSkipPragmaDiagnosticMappings = true; + + return GenerateModuleAction::CreateASTConsumer(CI, InFile); +} + std::unique_ptr<raw_pwrite_stream> GenerateModuleInterfaceAction::CreateOutputFile(CompilerInstance &CI, StringRef InFile) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits