diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-03-18 23:05:39 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-03-18 23:05:39 +0000 |
commit | 1ec7b33079a574db8c87bf5d6754db338be904cd (patch) | |
tree | fea79252822f01619f6f9ecea09f30d2240455e0 | |
parent | 21c7e6e298bad459eeb7b2339453640e4f6c5134 (diff) | |
download | bcm5719-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.h | 9 | ||||
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 7 | ||||
-rw-r--r-- | clang/tools/libclang/libclang.darwin.exports | 3 | ||||
-rw-r--r-- | clang/tools/libclang/libclang.exports | 1 |
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 |