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
This commit is contained in:
Chris Demetriou 2001-01-24 03:03:12 +00:00 committed by Chris Demetriou
parent 0006091ec2
commit 8a1894ac7b
4 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,12 @@
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.
2001-01-23 Richard Henderson <rth@redhat.com> 2001-01-23 Richard Henderson <rth@redhat.com>
* flow.c (init_propagate_block_info): Don't consider unchanging * flow.c (init_propagate_block_info): Don't consider unchanging

View File

@ -132,6 +132,7 @@ GCC_3.0 {
__sjpopnthrow __sjpopnthrow
__sjthrow __sjthrow
__terminate __terminate
__terminate_set_func
__throw __throw
__throw_type_match __throw_type_match
__unwinding_cleanup __unwinding_cleanup

View File

@ -3143,7 +3143,7 @@ __default_terminate (void)
abort (); abort ();
} }
void (*__terminate_func)(void) __attribute__ ((__noreturn__)) = static __terminate_func_ptr __terminate_func =
__default_terminate; __default_terminate;
void __attribute__((__noreturn__)) void __attribute__((__noreturn__))
@ -3152,6 +3152,15 @@ __terminate (void)
(*__terminate_func)(); (*__terminate_func)();
} }
__terminate_func_ptr
__terminate_set_func (__terminate_func_ptr newfunc)
{
__terminate_func_ptr oldfunc = __terminate_func;
__terminate_func = newfunc;
return (oldfunc);
}
void * void *
__throw_type_match (void *catch_type, void *throw_type, void *obj) __throw_type_match (void *catch_type, void *throw_type, void *obj)
{ {

View File

@ -22,12 +22,15 @@ Boston, MA 02111-1307, USA. */
#ifndef __LIBGCC2_H__ #ifndef __LIBGCC2_H__
#define __LIBGCC2_H__ #define __LIBGCC2_H__
typedef void (*__terminate_func_ptr)(void) __attribute__ ((__noreturn__));
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t); extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void *__builtin_saveregs (void); extern void *__builtin_saveregs (void);
extern void __dummy (void); extern void __dummy (void);
extern void __clear_cache (char *, char *); extern void __clear_cache (char *, char *);
extern void __pure_virtual (void) __attribute__ ((__noreturn__)); extern void __pure_virtual (void) __attribute__ ((__noreturn__));
extern void __terminate (void) __attribute__ ((__noreturn__)); extern void __terminate (void) __attribute__ ((__noreturn__));
extern __terminate_func_ptr __terminate_set_func (__terminate_func_ptr);
extern void __default_terminate (void) __attribute__ ((__noreturn__)); extern void __default_terminate (void) __attribute__ ((__noreturn__));
extern void *__throw_type_match (void *, void *, void *); extern void *__throw_type_match (void *, void *, void *);
extern void __empty (void); extern void __empty (void);