diff options
Diffstat (limited to 'contrib/gcc/cfg.c')
-rw-r--r-- | contrib/gcc/cfg.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/contrib/gcc/cfg.c b/contrib/gcc/cfg.c index 8adcef6..73689c3 100644 --- a/contrib/gcc/cfg.c +++ b/contrib/gcc/cfg.c @@ -1,6 +1,6 @@ /* Control flow graph manipulation code for GNU compiler. Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001 Free Software Foundation, Inc. + 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GCC. @@ -222,6 +222,17 @@ alloc_block () /* Remove block B from the basic block array and compact behind it. */ void +expunge_block_nocompact (b) + basic_block b; +{ + /* Invalidate data to make bughunting easier. */ + memset (b, 0, sizeof *b); + b->index = -3; + b->succ = (edge) first_deleted_block; + first_deleted_block = (basic_block) b; +} + +void expunge_block (b) basic_block b; { @@ -234,13 +245,10 @@ expunge_block (b) x->index = i; } - /* Invalidate data to make bughunting easier. */ - memset (b, 0, sizeof *b); - b->index = -3; - basic_block_info->num_elements--; n_basic_blocks--; - b->succ = (edge) first_deleted_block; - first_deleted_block = (basic_block) b; + basic_block_info->num_elements--; + + expunge_block_nocompact (b); } /* Create an edge connecting SRC and DST with FLAGS optionally using |