aboutsummaryrefslogtreecommitdiff
path: root/gcc/libgcc2.c
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1995-03-08 15:21:52 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1995-03-08 15:21:52 +0000
commit8a552066c6da40dace18225bbffda66b5b9e3883 (patch)
treea54b014dd355ae71c2d294ec14facfffcb537e39 /gcc/libgcc2.c
parentc9040e2c81683a96a8e1b0903096d612d0f84013 (diff)
downloadgcc-8a552066c6da40dace18225bbffda66b5b9e3883.zip
gcc-8a552066c6da40dace18225bbffda66b5b9e3883.tar.gz
gcc-8a552066c6da40dace18225bbffda66b5b9e3883.tar.bz2
Do not initialize the pointer variable __new_handler with an address.
From-SVN: r9129
Diffstat (limited to 'gcc/libgcc2.c')
-rw-r--r--gcc/libgcc2.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 39598ef..6846dfc 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -1604,11 +1604,13 @@ __bb_init_func (struct bb *blocks)
typedef void (*vfp)(void);
extern vfp __new_handler;
+extern void __default_new_handler (void);
void *
__builtin_new (size_t sz)
{
void *p;
+ vfp handler = (__new_handler) ? __new_handler : __default_new_handler;
/* malloc (0) is unpredictable; avoid it. */
if (sz == 0)
@@ -1616,7 +1618,7 @@ __builtin_new (size_t sz)
p = (void *) malloc (sz);
while (p == 0)
{
- (*__new_handler) ();
+ (*handler) ();
p = (void *) malloc (sz);
}
@@ -1657,7 +1659,7 @@ __builtin_vec_new (size_t sz)
typedef void (*vfp)(void);
void __default_new_handler (void);
-vfp __new_handler = __default_new_handler;
+vfp __new_handler = (vfp)0;
vfp
set_new_handler (vfp handler)