message: sema_manager: Use llvm::CrashRecoveryContext
diff: @@ -327,19 +327,26 @@ buildCompilerInstance(Session &session, std::unique_ptr<CompilerInvocation> ci,
  bool parse(CompilerInstance &clang) {
  SyntaxOnlyAction action;
  + llvm::CrashRecoveryContext crc;
  + bool ok = false;
  + auto run = [&]() {
  if (!action.BeginSourceFile(clang, clang.getFrontendOpts().Inputs[0]))
  - return false;
  + return;
  #if LLVM_VERSION_MAJOR >= 9 // rL364464
  if (llvm::Error e = action.Execute()) {
  llvm::consumeError(std::move(e));
  - return false;
  + return;
  }
  #else
  if (!action.Execute())
  - return false;
  + return;
  #endif
  action.EndSourceFile();
  - return true;
  + ok = true;
  + };
  + if (!crc.RunSafely(run))
  + LOG_S(ERROR) << "clang crashed";
  + return ok;
  }
  void buildPreamble(Session &session, CompilerInvocation &ci,
  