summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2018-10-11 13:06:10 +0000
committerSam McCall <sam.mccall@gmail.com>2018-10-11 13:06:10 +0000
commit0f80d9f27dc1e8c232dc7dec486475d67c50df9e (patch)
tree979f171e0f1902de34ce38766396dd0b2e64a587
parentec5932e88efdaa8ed99338057de9975d5f4b256d (diff)
downloadbcm5719-llvm-0f80d9f27dc1e8c232dc7dec486475d67c50df9e.tar.gz
bcm5719-llvm-0f80d9f27dc1e8c232dc7dec486475d67c50df9e.zip
[clangd] Remove no-op crash handler, we never set a crash context.
Summary: I think this was just copied from somewhere with the belief that it actually did some crash handling. Of course the question arises: *should* we set one? I don't think so: - clangd used to crash a lot, now it's pretty stable, because we found and fixed the crashes. I think the long-term effects of crashing hard are good. - the implementation can't do any magic, it just uses longjmp to return without running any destructors by default. This is unsafe in general (e.g. mutexes won't unlock) and will certainly end up leaking memory. Whatever UB caused the crash may still stomp all over global state, etc. I think there's an argument for isolating the background indexer (autoindex) because it's not directly under the user's control, the crash surface is larger, and it doesn't particularly need to interact with the rest of clangd. But there, fork() and communicate through the FS is safer. Reviewers: ioeric, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D53034 llvm-svn: 344245
-rw-r--r--clang-tools-extra/clangd/ClangdUnit.cpp5
1 files changed, 0 insertions, 5 deletions
diff --git a/clang-tools-extra/clangd/ClangdUnit.cpp b/clang-tools-extra/clangd/ClangdUnit.cpp
index 85c7fd86af5..9d57060e6c0 100644
--- a/clang-tools-extra/clangd/ClangdUnit.cpp
+++ b/clang-tools-extra/clangd/ClangdUnit.cpp
@@ -31,7 +31,6 @@
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
-#include "llvm/Support/CrashRecoveryContext.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
@@ -141,10 +140,6 @@ ParsedAST::build(std::unique_ptr<clang::CompilerInvocation> CI,
if (!Clang)
return llvm::None;
- // Recover resources if we crash before exiting this method.
- llvm::CrashRecoveryContextCleanupRegistrar<CompilerInstance> CICleanup(
- Clang.get());
-
auto Action = llvm::make_unique<ClangdFrontendAction>();
const FrontendInputFile &MainInput = Clang->getFrontendOpts().Inputs[0];
if (!Action->BeginSourceFile(*Clang, MainInput)) {
OpenPOWER on IntegriCloud