[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