diff options
author | Jeff Law <law@gcc.gnu.org> | 1997-12-06 17:31:01 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-12-06 17:31:01 -0700 |
commit | 956d69504d77d301015532d2f0564213f0efc706 (patch) | |
tree | ec80f8d1e46852ac1ba45aecdcda7201c302ac6f /gcc/frame.c | |
parent | 27b6b158c29b45fd80c2f104d5da1f4bc818d7ab (diff) | |
download | gcc-956d69504d77d301015532d2f0564213f0efc706.zip gcc-956d69504d77d301015532d2f0564213f0efc706.tar.gz gcc-956d69504d77d301015532d2f0564213f0efc706.tar.bz2 |
Merge from gcc-2.8
From-SVN: r16987
Diffstat (limited to 'gcc/frame.c')
-rw-r--r-- | gcc/frame.c | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/gcc/frame.c b/gcc/frame.c index 1fb29e44..747fb9f 100644 --- a/gcc/frame.c +++ b/gcc/frame.c @@ -37,8 +37,8 @@ Boston, MA 02111-1307, USA. */ #ifdef DWARF2_UNWIND_INFO #include "gansidecl.h" #include "dwarf2.h" -#include "frame.h" #include <stddef.h> +#include "frame.h" /* Don't use `fancy_abort' here even if config.h says to use it. */ #ifdef abort @@ -75,18 +75,7 @@ struct dwarf_fde { typedef struct dwarf_fde fde; -/* The representation for an "object" to be searched for frame unwind info. - For targets with named sections, one object is an executable or shared - library; for other targets, one object is one translation unit. */ - -struct object { - void *pc_begin; - void *pc_end; - fde *fde_begin; - fde ** fde_array; - size_t count; - struct object *next; -}; +/* Objects to be searched for frame unwind info. */ static struct object *objects; @@ -512,10 +501,8 @@ execute_cfa_insn (void *p, struct frame_state_internal *state, /* Called from crtbegin.o to register the unwind info for an object. */ void -__register_frame (void *begin) +__register_frame (void *begin, struct object *ob) { - struct object *ob = (struct object *) malloc (sizeof (struct object)); - ob->fde_begin = begin; ob->pc_begin = ob->pc_end = 0; @@ -531,10 +518,8 @@ __register_frame (void *begin) collect2. */ void -__register_frame_table (void *begin) +__register_frame_table (void *begin, struct object *ob) { - struct object *ob = (struct object *) malloc (sizeof (struct object)); - ob->fde_begin = begin; ob->fde_array = begin; @@ -562,7 +547,6 @@ __deregister_frame (void *begin) /* If we've run init_frame for this object, free the FDE array. */ if (ob->pc_begin) free (ob->fde_array); - free (ob); return; } |