summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CIndexer.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-11-05 07:19:31 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-11-05 07:19:31 +0000
commitb7383e6d80af774880784587b0e7d7edceb4b295 (patch)
treea36f5896a2709d9d43f3e5d81aa161fb37ded22f /clang/tools/libclang/CIndexer.h
parent9aff85e41e419ff11602092540f2d7c386dd39f8 (diff)
downloadbcm5719-llvm-b7383e6d80af774880784587b0e7d7edceb4b295.tar.gz
bcm5719-llvm-b7383e6d80af774880784587b0e7d7edceb4b295.zip
libclang: Add some support for running certain entry points in a "safety"
thread, primarily to get a larger stack. - Yes, I feel dirty. llvm-svn: 118274
Diffstat (limited to 'clang/tools/libclang/CIndexer.h')
-rw-r--r--clang/tools/libclang/CIndexer.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/clang/tools/libclang/CIndexer.h b/clang/tools/libclang/CIndexer.h
index 1fcb964c6ef..b6a82818a80 100644
--- a/clang/tools/libclang/CIndexer.h
+++ b/clang/tools/libclang/CIndexer.h
@@ -1,4 +1,4 @@
-//===- CIndexer.h - Clang-C Source Indexing Library -----------------------===//
+//===- CIndexer.h - Clang-C Source Indexing Library -------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -20,6 +20,10 @@
#include "llvm/System/Path.h"
#include <vector>
+namespace llvm {
+ class CrashRecoveryContext;
+}
+
namespace clang {
namespace cxstring {
CXString createCXString(const char *String, bool DupString = false);
@@ -66,6 +70,20 @@ namespace clang {
struct CXUnsavedFile *unsaved_files,
std::vector<std::string> &RemapArgs,
std::vector<llvm::sys::Path> &TemporaryFiles);
+
+ /// \brief Return the current size to request for "safety".
+ unsigned GetSafetyThreadStackSize();
+
+ /// \brief Set the current size to request for "safety" (or 0, if safety
+ /// threads should not be used).
+ void SetSafetyThreadStackSize(unsigned Value);
+
+ /// \brief Execution the given code "safely", using crash recovery or safety
+ /// threads when possible.
+ ///
+ /// \return False if a crash was detected.
+ bool RunSafely(llvm::CrashRecoveryContext &CRC,
+ void (*Fn)(void*), void *UserData);
}
#endif
OpenPOWER on IntegriCloud