libclang: Execute clang_codeCompleteAt() inside a crash recovery context.
- Test case is disabled for now, because something isn't write with file
remapping.
llvm-svn: 111581
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 8134971..27d5ab2 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -1221,7 +1221,7 @@
unsigned options;
CXTranslationUnit result;
};
-void clang_parseTranslationUnit_Impl(void *UserData) {
+static void clang_parseTranslationUnit_Impl(void *UserData) {
ParseTranslationUnitInfo *PTUI =
static_cast<ParseTranslationUnitInfo*>(UserData);
CXIndex CIdx = PTUI->CIdx;
@@ -1491,7 +1491,7 @@
llvm::CrashRecoveryContext CRC;
if (!CRC.RunSafely(clang_parseTranslationUnit_Impl, &PTUI)) {
- // FIXME: Find a way to report the crash.
+ fprintf(stderr, "libclang: crash detected during parsing");
return 0;
}
@@ -1532,7 +1532,7 @@
unsigned options;
int result;
};
-void clang_reparseTranslationUnit_Impl(void *UserData) {
+static void clang_reparseTranslationUnit_Impl(void *UserData) {
ReparseTranslationUnitInfo *RTUI =
static_cast<ReparseTranslationUnitInfo*>(UserData);
CXTranslationUnit TU = RTUI->TU;
@@ -1567,7 +1567,7 @@
llvm::CrashRecoveryContext CRC;
if (!CRC.RunSafely(clang_reparseTranslationUnit_Impl, &RTUI)) {
- // FIXME: Find a way to report the crash.
+ fprintf(stderr, "libclang: crash detected during reparsing\n");
static_cast<ASTUnit *>(TU)->setUnsafeToFree(true);
return 1;
}