diff options
-rw-r--r-- | clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp b/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp index 1ea73b55946..1cfda579d7f 100644 --- a/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp +++ b/clang-tools-extra/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp @@ -82,6 +82,14 @@ public: void EndSourceFileAction() override { WrapperFrontendAction::EndSourceFileAction(); + const auto &CI = getCompilerInstance(); + if (CI.hasDiagnostics() && + (CI.getDiagnosticClient().getNumErrors() > 0)) { + llvm::errs() << "Found errors in the translation unit. Igoring " + "collected symbols...\n"; + return; + } + auto Symbols = Collector->takeSymbols(); for (const auto &Sym : Symbols) { Ctx->reportResult(Sym.ID.str(), SymbolToYAML(Sym)); |