aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfg.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2011-03-23 11:35:59 -0600
committerJeff Law <law@gcc.gnu.org>2011-03-23 11:35:59 -0600
commit0c617be487cd7b2d7597330a52ff3a020dc11076 (patch)
tree63167faa52777ebde1ca5984d9076b69601f109d /gcc/cfg.c
parent58da96fef9d3d98154968670f1b15dc5b8e116d9 (diff)
downloadgcc-0c617be487cd7b2d7597330a52ff3a020dc11076.zip
gcc-0c617be487cd7b2d7597330a52ff3a020dc11076.tar.gz
gcc-0c617be487cd7b2d7597330a52ff3a020dc11076.tar.bz2
cfg.c (redirect_edge_succ_nodup): Duplicate the varm map before removing the edge.
* cfg.c (redirect_edge_succ_nodup): Duplicate the varm map before removing the edge. * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after it may have been freed by redirect_branch_edge or redirect_edge_succ_nodup. From-SVN: r171356
Diffstat (limited to 'gcc/cfg.c')
-rw-r--r--gcc/cfg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cfg.c b/gcc/cfg.c
index c8ef799..5b1dc26 100644
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -402,8 +402,8 @@ redirect_edge_succ_nodup (edge e, basic_block new_succ)
if (s->probability > REG_BR_PROB_BASE)
s->probability = REG_BR_PROB_BASE;
s->count += e->count;
- remove_edge (e);
redirect_edge_var_map_dup (s, e);
+ remove_edge (e);
e = s;
}
else