From: Ian Lance Taylor Date: Sun, 13 Jun 1999 19:38:06 +0000 (+0000) Subject: * cg_dfn.c: Include "libiberty.h" X-Git-Tag: gdb-1999-06-14~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd917ff662c8dac56fe0ecee87816a344d54dc2f;p=external%2Fbinutils.git * cg_dfn.c: Include "libiberty.h" (DFN_INCR_DEPTH): Define instead of DFN_DEPTH. (dfn_stack): Define as pointer rather than array. (pre_visit): Reallocate dfn_stack as needed. --- diff --git a/gprof/ChangeLog b/gprof/ChangeLog index 24626c2..91ddafd 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,10 @@ +1999-06-13 Ian Lance Taylor + + * cg_dfn.c: Include "libiberty.h" + (DFN_INCR_DEPTH): Define instead of DFN_DEPTH. + (dfn_stack): Define as pointer rather than array. + (pre_visit): Reallocate dfn_stack as needed. + 1999-04-26 Tom Tromey * aclocal.m4, configure: Updated for new version of libtool. diff --git a/gprof/cg_dfn.c b/gprof/cg_dfn.c index c9e37ab..02d64e7 100644 --- a/gprof/cg_dfn.c +++ b/gprof/cg_dfn.c @@ -17,13 +17,14 @@ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include +#include "libiberty.h" #include "gprof.h" #include "cg_arcs.h" #include "cg_dfn.h" #include "symtab.h" #include "utils.h" -#define DFN_DEPTH 100 +#define DFN_INCR_DEPTH (128) typedef struct { @@ -32,7 +33,8 @@ typedef struct } DFN_Stack; -DFN_Stack dfn_stack[DFN_DEPTH]; +DFN_Stack *dfn_stack = NULL; +int dfn_maxdepth = 0; int dfn_depth = 0; int dfn_counter = DFN_NAN; @@ -194,11 +196,13 @@ static void DEFUN (pre_visit, (parent), Sym * parent) { ++dfn_depth; - if (dfn_depth >= DFN_DEPTH) + + if (dfn_depth >= dfn_maxdepth) { - fprintf (stderr, "[pre_visit] dfn_stack overflow\n"); - done (1); + dfn_maxdepth += DFN_INCR_DEPTH; + dfn_stack = xrealloc (dfn_stack, dfn_maxdepth * sizeof *dfn_stack); } + dfn_stack[dfn_depth].sym = parent; dfn_stack[dfn_depth].cycle_top = dfn_depth; parent->cg.top_order = DFN_BUSY;