[llvm-commits] [llvm] r111398 - /llvm/trunk/include/llvm/Support/ErrorHandling.h
Dan Gohman
gohman at apple.com
Wed Aug 18 13:16:39 PDT 2010
Author: djg
Date: Wed Aug 18 15:16:39 2010
New Revision: 111398
URL: http://llvm.org/viewvc/llvm-project?rev=111398&view=rev
Log:
Introduce a ScopedFatalErrorHandler class to make it easy to register
fatal error handlers which automatically get unregistered at the end
of a scope.
Modified:
llvm/trunk/include/llvm/Support/ErrorHandling.h
Modified: llvm/trunk/include/llvm/Support/ErrorHandling.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/ErrorHandling.h?rev=111398&r1=111397&r2=111398&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/ErrorHandling.h (original)
+++ llvm/trunk/include/llvm/Support/ErrorHandling.h Wed Aug 18 15:16:39 2010
@@ -52,6 +52,18 @@
/// 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.)
More information about the llvm-commits
mailing list