aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-02-24 13:15:55 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-02-24 08:15:55 -0500
commitbd015d378330fc78f85d28ed8c094837e23baca8 (patch)
treedba8fc1b41b606bab2b832ed5473057759474521 /gcc/function.c
parentf900ecd8a7df281db0041ea1b9702a677147fe25 (diff)
downloadgcc-bd015d378330fc78f85d28ed8c094837e23baca8.zip
gcc-bd015d378330fc78f85d28ed8c094837e23baca8.tar.gz
gcc-bd015d378330fc78f85d28ed8c094837e23baca8.tar.bz2
tree.h (BLOCK_DEAD): New macro.
* tree.h (BLOCK_DEAD): New macro. (struct tree_block): New flag, dead_flag. * print-tree.c (print_node, case 'b'): Print missing fields. * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD. * function.c (identify_blocks): Enable test for misplaced notes. (all_blocks): Skip BLOCK_DEAD blocks. * integrate.c (integrate_decl_tree): Likewise. From-SVN: r40039
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/gcc/function.c b/gcc/function.c
index a1c2d33..58f3f6d 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5740,8 +5740,7 @@ identify_blocks ()
block_stack);
/* If we didn't use all of the subblocks, we've misplaced block notes. */
- /* ??? This appears to happen all the time. Latent bugs elsewhere? */
- if (0 && last_block_vector != block_vector + n_blocks)
+ if (last_block_vector != block_vector + n_blocks)
abort ();
free (block_vector);
@@ -5947,27 +5946,28 @@ blocks_nreverse (t)
blocks. */
static int
-all_blocks (block, vector)
- tree block;
+all_blocks (blocks, vector)
+ tree blocks;
tree *vector;
{
int n_blocks = 0;
+ tree block;
- while (block)
- {
- TREE_ASM_WRITTEN (block) = 0;
+ for (block = blocks; block != 0; block = TREE_CHAIN (block))
+ if (!BLOCK_DEAD (block))
+ {
+ TREE_ASM_WRITTEN (block) = 0;
- /* Record this block. */
- if (vector)
- vector[n_blocks] = block;
+ /* Record this block. */
+ if (vector)
+ vector[n_blocks] = block;
- ++n_blocks;
+ ++n_blocks;
- /* Record the subblocks, and their subblocks... */
- n_blocks += all_blocks (BLOCK_SUBBLOCKS (block),
- vector ? vector + n_blocks : 0);
- block = BLOCK_CHAIN (block);
- }
+ /* Record the subblocks, and their subblocks... */
+ n_blocks += all_blocks (BLOCK_SUBBLOCKS (block),
+ vector ? vector + n_blocks : 0);
+ }
return n_blocks;
}