diff options
| author | Dan Gohman <gohman@apple.com> | 2010-08-18 20:16:39 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2010-08-18 20:16:39 +0000 |
| commit | e3d9c194c97e7edff2c3aa3d3f8b030efeac696a (patch) | |
| tree | f17b1f932dd56fe4004a0fed9fd90a8d3e578ce9 /include/llvm/Support | |
| parent | 20270bb45782427d5efd5e2922c5d2ac453038ca (diff) | |
| download | external_llvm-e3d9c194c97e7edff2c3aa3d3f8b030efeac696a.zip external_llvm-e3d9c194c97e7edff2c3aa3d3f8b030efeac696a.tar.gz external_llvm-e3d9c194c97e7edff2c3aa3d3f8b030efeac696a.tar.bz2 | |
Introduce a ScopedFatalErrorHandler class to make it easy to register
fatal error handlers which automatically get unregistered at the end
of a scope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111398 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support')
| -rw-r--r-- | include/llvm/Support/ErrorHandling.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/llvm/Support/ErrorHandling.h b/include/llvm/Support/ErrorHandling.h index ffcb482..9854657 100644 --- a/include/llvm/Support/ErrorHandling.h +++ b/include/llvm/Support/ErrorHandling.h @@ -52,6 +52,18 @@ namespace llvm { /// llvm_stop_multithreaded(). void remove_fatal_error_handler(); + /// ScopedFatalErrorHandler - This is a simple helper class which just + /// calls install_fatal_error_handler in its constructor and + /// remove_fatal_error_handler in its destructor. + struct ScopedFatalErrorHandler { + explicit ScopedFatalErrorHandler(fatal_error_handler_t handler, + void *user_data = 0) { + install_fatal_error_handler(handler, user_data); + } + + ~ScopedFatalErrorHandler() { remove_fatal_error_handler(); } + }; + /// Reports a serious error, calling any installed error handler. These /// functions are intended to be used for error conditions which are outside /// the control of the compiler (I/O errors, invalid user input, etc.) |
