diff options
author | Chris Demetriou <cgd@broadcom.com> | 2001-01-24 03:03:12 +0000 |
---|---|---|
committer | Chris Demetriou <cgd@gcc.gnu.org> | 2001-01-23 19:03:12 -0800 |
commit | 8a1894ac7ba96fb629e676300ca2a870ddfc6dba (patch) | |
tree | 7748d2470518ba26fbea30b07df94dd62b366e29 /gcc/libgcc2.c | |
parent | 0006091ec2f5039501b60be2c1c014ea6e11906f (diff) | |
download | gcc-8a1894ac7ba96fb629e676300ca2a870ddfc6dba.zip gcc-8a1894ac7ba96fb629e676300ca2a870ddfc6dba.tar.gz gcc-8a1894ac7ba96fb629e676300ca2a870ddfc6dba.tar.bz2 |
libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list of EH symbols.
2001-01-23 Chris Demetriou <cgd@broadcom.com>
* libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list
of EH symbols.
* libgcc2.c (__terminate_func): Make variable static.
(__terminate_set_func): New function to set __terminate_func.
* libgcc2.h (__terminate_func_ptr): New typedef.
(__terminate_set_func): New function.
From-SVN: r39224
Diffstat (limited to 'gcc/libgcc2.c')
-rw-r--r-- | gcc/libgcc2.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c index cf6822b..5e5d7c0 100644 --- a/gcc/libgcc2.c +++ b/gcc/libgcc2.c @@ -3143,7 +3143,7 @@ __default_terminate (void) abort (); } -void (*__terminate_func)(void) __attribute__ ((__noreturn__)) = +static __terminate_func_ptr __terminate_func = __default_terminate; void __attribute__((__noreturn__)) @@ -3152,6 +3152,15 @@ __terminate (void) (*__terminate_func)(); } +__terminate_func_ptr +__terminate_set_func (__terminate_func_ptr newfunc) +{ + __terminate_func_ptr oldfunc = __terminate_func; + + __terminate_func = newfunc; + return (oldfunc); +} + void * __throw_type_match (void *catch_type, void *throw_type, void *obj) { |