Ver código fonte

In C++ interop, stop referring to the diagnostics consumer before deleting it (#5149)

Part of #4666
Boaz Brickner 1 ano atrás
pai
commit
3a5e18b1a1
1 arquivos alterados com 3 adições e 0 exclusões
  1. 3 0
      toolchain/check/import_cpp.cpp

+ 3 - 0
toolchain/check/import_cpp.cpp

@@ -70,6 +70,9 @@ static auto GenerateAst(Context& context, llvm::StringRef importing_file_path,
       "clang-tool", std::make_shared<clang::PCHContainerOperations>(),
       clang::tooling::getClangStripDependencyFileAdjuster(),
       clang::tooling::FileContentMappings(), &diagnostics_consumer, fs);
+  // Remove link to the diagnostics consumer before its deletion.
+  ast->getDiagnostics().setClient(nullptr);
+
   // TODO: Implement and use a DynamicRecursiveASTVisitor to traverse the AST.
   int num_errors = diagnostics_consumer.getNumErrors();
   int num_warnings = diagnostics_consumer.getNumWarnings();