From 2045189043d4e2748ed82915dd7bdf3e96728738 Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Thu, 14 May 2020 13:08:59 +0200 Subject: [PATCH] [clangd] Setting recovery-ast flag in buildCompilerInvocation, NFC. This saves some duplicated code (in buildPreamble and buildAST). --- clang-tools-extra/clangd/Compiler.cpp | 4 ++++ clang-tools-extra/clangd/ParsedAST.cpp | 3 --- clang-tools-extra/clangd/Preamble.cpp | 4 ---- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/clang-tools-extra/clangd/Compiler.cpp b/clang-tools-extra/clangd/Compiler.cpp index 04d48b0..ee9b187 100644 --- a/clang-tools-extra/clangd/Compiler.cpp +++ b/clang-tools-extra/clangd/Compiler.cpp @@ -82,6 +82,10 @@ buildCompilerInvocation(const ParseInputs &Inputs, clang::DiagnosticConsumer &D, CI->getPreprocessorOpts().PCHThroughHeader.clear(); CI->getPreprocessorOpts().PCHWithHdrStop = false; CI->getPreprocessorOpts().PCHWithHdrStopCreate = false; + + // Recovery expression currently only works for C++. + if (CI->getLangOpts()->CPlusPlus) + CI->getLangOpts()->RecoveryAST = Inputs.Opts.BuildRecoveryAST; return CI; } diff --git a/clang-tools-extra/clangd/ParsedAST.cpp b/clang-tools-extra/clangd/ParsedAST.cpp index e63f105..e7678f3 100644 --- a/clang-tools-extra/clangd/ParsedAST.cpp +++ b/clang-tools-extra/clangd/ParsedAST.cpp @@ -262,9 +262,6 @@ ParsedAST::build(llvm::StringRef Filename, const ParseInputs &Inputs, const PrecompiledPreamble *PreamblePCH = Preamble ? &Preamble->Preamble : nullptr; - // Recovery expression currently only works for C++. - if (CI->getLangOpts()->CPlusPlus) - CI->getLangOpts()->RecoveryAST = Inputs.Opts.BuildRecoveryAST; // This is on-by-default in windows to allow parsing SDK headers, but it // breaks many features. Disable it for the main-file (not preamble). CI->getLangOpts()->DelayedTemplateParsing = false; diff --git a/clang-tools-extra/clangd/Preamble.cpp b/clang-tools-extra/clangd/Preamble.cpp index 640a2c6..9d9c5ef 100644 --- a/clang-tools-extra/clangd/Preamble.cpp +++ b/clang-tools-extra/clangd/Preamble.cpp @@ -219,10 +219,6 @@ buildPreamble(PathRef FileName, CompilerInvocation CI, // to read back. We rely on dynamic index for the comments instead. CI.getPreprocessorOpts().WriteCommentListToPCH = false; - // Recovery expression currently only works for C++. - if (CI.getLangOpts()->CPlusPlus) - CI.getLangOpts()->RecoveryAST = Inputs.Opts.BuildRecoveryAST; - CppFilePreambleCallbacks SerializedDeclsCollector(FileName, PreambleCallback); if (Inputs.FS->setCurrentWorkingDirectory(Inputs.CompileCommand.Directory)) { log("Couldn't set working directory when building the preamble."); -- 2.7.4