aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-live.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-10-09 10:14:45 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-10-09 10:14:45 +0200
commitcc2a64dd80513c1155fad3370bc639daa97b7404 (patch)
tree1599f2d75e2a457f0aed00567cfc9d802c798435 /gcc/tree-ssa-live.c
parenta3d3c0f5fa9cd88e6285f60c593cb753cc53d4c2 (diff)
downloadgcc-cc2a64dd80513c1155fad3370bc639daa97b7404.zip
gcc-cc2a64dd80513c1155fad3370bc639daa97b7404.tar.gz
gcc-cc2a64dd80513c1155fad3370bc639daa97b7404.tar.bz2
tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block as used.
* tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block as used. * gimple-low.c (lower_function_body, lower_gimple_return, lower_builtin_setjmp): Set gimple_block on the newly created stmts. * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set goto_block on edges if goto_locus is known. From-SVN: r141002
Diffstat (limited to 'gcc/tree-ssa-live.c')
-rw-r--r--gcc/tree-ssa-live.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 859c0c7..4731518 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -600,6 +600,8 @@ remove_unused_locals (void)
{
gimple_stmt_iterator gsi;
size_t i;
+ edge_iterator ei;
+ edge e;
/* Walk the statements. */
for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
@@ -634,6 +636,10 @@ remove_unused_locals (void)
mark_all_vars_used (&arg, NULL);
}
}
+
+ FOR_EACH_EDGE (e, ei, bb->succs)
+ if (e->goto_locus)
+ TREE_USED (e->goto_block) = true;
}
/* Remove unmarked local vars from local_decls. */