From: Ted Kremenek Date: Fri, 18 Mar 2011 23:05:39 +0000 (+0000) Subject: Add libclang hook 'clang_toggleCrashRecovery()', which provides a mechanism for a... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d2427ddf00aacdc288c386f3882e0821ca9bd27b;p=clang Add libclang hook 'clang_toggleCrashRecovery()', which provides a mechanism for a client to enable/disable CrashRecovery within libclang function calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127920 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h index 722f6be538..4d93afd105 100644 --- a/include/clang-c/Index.h +++ b/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/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index 88b3d76e91..502ee9958d 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -2309,6 +2309,13 @@ void clang_disposeIndex(CXIndex CIdx) { delete static_cast(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/tools/libclang/libclang.darwin.exports b/tools/libclang/libclang.darwin.exports index 7614544ca3..0bb463207f 100644 --- a/tools/libclang/libclang.darwin.exports +++ b/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/tools/libclang/libclang.exports b/tools/libclang/libclang.exports index c2f0587b9a..ac17b2e74b 100644 --- a/tools/libclang/libclang.exports +++ b/tools/libclang/libclang.exports @@ -126,6 +126,7 @@ clang_parseTranslationUnit clang_reparseTranslationUnit clang_saveTranslationUnit clang_sortCodeCompletionResults +clang_toggleCrashRecovery clang_tokenize clang_visitChildren clang_visitChildrenWithBlock