From: Chris Demetriou Date: Wed, 24 Jan 2001 03:04:36 +0000 (+0000) Subject: exception_support.cc (__terminate_func): Remove declaration. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=17fd8a87a4d92cd98089525cbc562ed3beed7937;p=gcc.git exception_support.cc (__terminate_func): Remove declaration. 2001-01-23 Chris Demetriou * libsupc++/exception_support.cc (__terminate_func): Remove declaration. (__terminate_func_ptr): New typedef. (__terminate, __terminate_set_func): New extern function prototypes. (std::terminate): Use __terminate function. (std::set_terminate): Use __terminate_set_func function. From-SVN: r39226 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 13439b037cc..e962f278e01 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2001-01-23 Chris Demetriou + + * libsupc++/exception_support.cc (__terminate_func): Remove + declaration. + (__terminate_func_ptr): New typedef. + (__terminate, __terminate_set_func): New extern function + prototypes. + (std::terminate): Use __terminate function. + (std::set_terminate): Use __terminate_set_func function. + 2001-01-23 Benjamin Kosnik * configure.target: Just use os_include_dir always. diff --git a/libstdc++-v3/libsupc++/exception_support.cc b/libstdc++-v3/libsupc++/exception_support.cc index f6ec5086876..3f82a1a3d92 100644 --- a/libstdc++-v3/libsupc++/exception_support.cc +++ b/libstdc++-v3/libsupc++/exception_support.cc @@ -39,13 +39,17 @@ /* Define terminate, unexpected, set_terminate, set_unexpected as well as the default terminate func and default unexpected func. */ -extern std::terminate_handler __terminate_func __attribute__((__noreturn__)); +/* __terminate and __terminate_set_func, defined in libgcc2. */ +typedef void (*__terminate_func_ptr)(void) __attribute__ ((__noreturn__)); +extern "C" void __terminate (void) __attribute__ ((__noreturn__)); +extern "C" __terminate_func_ptr __terminate_set_func (__terminate_func_ptr); + using std::terminate; void std::terminate () { - __terminate_func (); + __terminate (); } void @@ -60,10 +64,7 @@ static std::unexpected_handler __unexpected_func __attribute__((__noreturn__)) std::terminate_handler std::set_terminate (std::terminate_handler func) throw() { - std::terminate_handler old = __terminate_func; - - __terminate_func = func; - return old; + return __terminate_set_func (func); } std::unexpected_handler