diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-10-09 10:14:45 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-10-09 10:14:45 +0200 |
commit | cc2a64dd80513c1155fad3370bc639daa97b7404 (patch) | |
tree | 1599f2d75e2a457f0aed00567cfc9d802c798435 /gcc/tree-cfg.c | |
parent | a3d3c0f5fa9cd88e6285f60c593cb753cc53d4c2 (diff) | |
download | gcc-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-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 505ee70..28ee8ef 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -658,12 +658,14 @@ make_cond_expr_edges (basic_block bb) e = make_edge (bb, then_bb, EDGE_TRUE_VALUE); e->goto_locus = gimple_location (then_stmt); - e->goto_block = gimple_block (then_stmt); + if (e->goto_locus) + e->goto_block = gimple_block (then_stmt); e = make_edge (bb, else_bb, EDGE_FALSE_VALUE); if (e) { e->goto_locus = gimple_location (else_stmt); - e->goto_block = gimple_block (else_stmt); + if (e->goto_locus) + e->goto_block = gimple_block (else_stmt); } /* We do not need the labels anymore. */ @@ -853,7 +855,8 @@ make_goto_expr_edges (basic_block bb) tree dest = gimple_goto_dest (goto_t); edge e = make_edge (bb, label_to_block (dest), EDGE_FALLTHRU); e->goto_locus = gimple_location (goto_t); - e->goto_block = gimple_block (goto_t); + if (e->goto_locus) + e->goto_block = gimple_block (goto_t); gsi_remove (&last, true); return; } |