diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e387cbcd990f5d3f1d924d8fa5639b87772e8191..80297cff20d81c76090d5c506fde0c59862808ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2004-01-02 Andrew Pinski <pinskia@physics.uc.edu> + + * c-typeck.c (finish_init): Free spelling_base before + setting it again. + + * cfgloop.c (flow_loops_find): Always free the sbitmap + headers. + + * predict.c (estimate_probability): Free bbs after being + done with it. + 2004-01-02 Kazu Hirata <kazu@cs.umass.edu> * config/mn10300/mn10300.h (PREDICATE_CODES): Add diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 682cbc0585fdb32c4ea3dbbe3f8f5622833f8355..3a71ee7f001a489064c5c42a60b18995f4206c25 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -4450,6 +4450,8 @@ finish_init (void) abort (); /* Pop back to the data of the outer initializer (if any). */ + free (spelling_base); + constructor_decl = p->decl; constructor_asmspec = p->asmspec; require_constant_value = p->require_constant_value; diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c index 43c52f23ddb7d0906b01ee78b6584e905989edef..37cf8f450bf0615698445bad236fa0447c140f15 100644 --- a/gcc/cfgloop.c +++ b/gcc/cfgloop.c @@ -883,8 +883,6 @@ flow_loops_find (struct loops *loops, int flags) loop->num_nodes = flow_loop_nodes_find (loop->header, loop); } - sbitmap_free (headers); - /* Assign the loop nesting depth and enclosed loop level for each loop. */ loops->levels = flow_loops_level_compute (loops); @@ -900,6 +898,8 @@ flow_loops_find (struct loops *loops, int flags) free_dominance_info (CDI_DOMINATORS); } + sbitmap_free (headers); + loops->state = 0; #ifdef ENABLE_CHECKING verify_flow_info (); diff --git a/gcc/predict.c b/gcc/predict.c index 74a1f24c3ad504b36e37f822b9a42c413426b7db..0cba3a5f91e730256e403eb789fa798c8eaac954 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -467,6 +467,9 @@ estimate_probability (struct loops *loops_info) - predictor_info [(int) PRED_LOOP_EXIT].hitrate) / exits); } + + /* Free basic blocks from get_loop_body. */ + free (bbs); } /* Attempt to predict conditional jumps using a number of heuristics. */