Introduce a ScopedFatalErrorHandler class to make it easy to register

fatal error handlers which automatically get unregistered at the end
of a scope.

llvm-svn: 111398
This commit is contained in:
Dan Gohman 2010-08-18 20:16:39 +00:00
parent a94deec1c0
commit 9b5ed21492

View File

@ -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.)