summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-03-18 23:05:39 +0000
committerTed Kremenek <kremenek@apple.com>2011-03-18 23:05:39 +0000
commit1ec7b33079a574db8c87bf5d6754db338be904cd (patch)
treefea79252822f01619f6f9ecea09f30d2240455e0
parent21c7e6e298bad459eeb7b2339453640e4f6c5134 (diff)
downloadbcm5719-llvm-1ec7b33079a574db8c87bf5d6754db338be904cd.tar.gz
bcm5719-llvm-1ec7b33079a574db8c87bf5d6754db338be904cd.zip
Add libclang hook 'clang_toggleCrashRecovery()', which provides a mechanism for a client to enable/disable CrashRecovery within libclang function calls.
llvm-svn: 127920
-rw-r--r--clang/include/clang-c/Index.h9
-rw-r--r--clang/tools/libclang/CIndex.cpp7
-rw-r--r--clang/tools/libclang/libclang.darwin.exports3
-rw-r--r--clang/tools/libclang/libclang.exports1
4 files changed, 19 insertions, 1 deletions
diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h
index 722f6be538b..4d93afd105d 100644
--- a/clang/include/clang-c/Index.h
+++ b/clang/include/clang-c/Index.h
@@ -2871,6 +2871,15 @@ CXDiagnostic clang_codeCompleteGetDiagnostic(CXCodeCompleteResults *Results,
*/
CINDEX_LINKAGE CXString clang_getClangVersion();
+
+/**
+ * \brief Enable/disable crash recovery.
+ *
+ * \param Flag to indicate if crash recovery is enabled. A non-zero value
+ * enables crash recovery, while 0 disables it.
+ */
+CINDEX_LINKAGE void clang_toggleCrashRecovery(unsigned isEnabled);
+
/**
* \brief Visitor invoked for each file in a translation unit
* (used with clang_getInclusions()).
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 88b3d76e91e..502ee9958d6 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -2309,6 +2309,13 @@ void clang_disposeIndex(CXIndex CIdx) {
delete static_cast<CIndexer *>(CIdx);
}
+void clang_toggleCrashRecovery(unsigned isEnabled) {
+ if (isEnabled)
+ llvm::CrashRecoveryContext::Enable();
+ else
+ llvm::CrashRecoveryContext::Disable();
+}
+
CXTranslationUnit clang_createTranslationUnit(CXIndex CIdx,
const char *ast_filename) {
if (!CIdx)
diff --git a/clang/tools/libclang/libclang.darwin.exports b/clang/tools/libclang/libclang.darwin.exports
index 7614544ca3b..0bb463207f2 100644
--- a/clang/tools/libclang/libclang.darwin.exports
+++ b/clang/tools/libclang/libclang.darwin.exports
@@ -108,8 +108,8 @@ _clang_getTranslationUnitSpelling
_clang_getTypeDeclaration
_clang_getTypeKindSpelling
_clang_hashCursor
-_clang_isCursorDefinition
_clang_isConstQualifiedType
+_clang_isCursorDefinition
_clang_isDeclaration
_clang_isExpression
_clang_isInvalid
@@ -126,6 +126,7 @@ _clang_parseTranslationUnit
_clang_reparseTranslationUnit
_clang_saveTranslationUnit
_clang_sortCodeCompletionResults
+_clang_toggleCrashRecovery
_clang_tokenize
_clang_visitChildren
_clang_visitChildrenWithBlock
diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports
index c2f0587b9ae..ac17b2e74bc 100644
--- a/clang/tools/libclang/libclang.exports
+++ b/clang/tools/libclang/libclang.exports
@@ -126,6 +126,7 @@ clang_parseTranslationUnit
clang_reparseTranslationUnit
clang_saveTranslationUnit
clang_sortCodeCompletionResults
+clang_toggleCrashRecovery
clang_tokenize
clang_visitChildren
clang_visitChildrenWithBlock
OpenPOWER on IntegriCloud