diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-24 16:44:17 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-03-24 16:44:17 +0000 |
commit | 4392e9068342c7c15ad3367f39431f8393c6442e (patch) | |
tree | 5c77c1979d07ecb5e2c5b708bf2756a6c827b543 /gcc/cfglayout.c | |
parent | ce482fbb9f2c92a4e228c1d4970fb336167afb41 (diff) | |
download | gcc-4392e9068342c7c15ad3367f39431f8393c6442e.tar.gz |
* tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
unused variable "ann".
(remove_unused_locals): Likewise.
* tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
statement.
* cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
after it is freed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171408 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r-- | gcc/cfglayout.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 76925a519f2..05aed221f0b 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -766,7 +766,7 @@ fixup_reorder_chain (void) { edge e_fall, e_taken, e; rtx bb_end_insn; - basic_block nb; + basic_block nb, src_bb; edge_iterator ei; if (EDGE_COUNT (bb->succs) == 0) @@ -894,7 +894,10 @@ fixup_reorder_chain (void) continue; } - /* We got here if we need to add a new jump insn. */ + /* We got here if we need to add a new jump insn. + Note force_nonfallthru can delete E_FALL and thus we have to + save E_FALL->src prior to the call to force_nonfallthru. */ + src_bb = e_fall->src; nb = force_nonfallthru (e_fall); if (nb) { @@ -905,9 +908,9 @@ fixup_reorder_chain (void) bb = nb; /* Make sure new bb is tagged for correct section (same as - fall-thru source, since you cannot fall-throu across + fall-thru source, since you cannot fall-thru across section boundaries). */ - BB_COPY_PARTITION (e_fall->src, single_pred (bb)); + BB_COPY_PARTITION (src_bb, single_pred (bb)); if (flag_reorder_blocks_and_partition && targetm.have_named_sections && JUMP_P (BB_END (bb)) |