+2001-01-23 Chris Demetriou <cgd@broadcom.com>
+
+ * 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 <bkoz@redhat.com>
* configure.target: Just use os_include_dir always.
/* 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
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