summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2017-08-25 12:21:00 +0000
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2017-08-25 12:21:00 +0000
commit1a0056ba14578e289082dfff4e6dcd9118866c78 (patch)
treef735f420198ea1aea6d35896dd4690efd5e57b63
parent2edde49591cbdb8e412177aad231b1afaa743435 (diff)
downloadgcc-1a0056ba14578e289082dfff4e6dcd9118866c78.tar.gz
PR81747, ICE in operator[]
PR rtl-optimization/81747 * cse.c (cse_extended_basic_block): Don't attempt to record equivalences for degenerate conditional branches that branch to their fall-through. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251349 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cse.c1
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4f2350a2cc6..7d03c8a2498 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2017-08-25 Alan Modra <amodra@gmail.com>
+
+ PR rtl-optimization/81747
+ * cse.c (cse_extended_basic_block): Don't attempt to record
+ equivalences for degenerate conditional branches that branch
+ to their fall-through.
+
2017-08-24 Martin Sebor <msebor@redhat.com>
PR middle-end/81908
diff --git a/gcc/cse.c b/gcc/cse.c
index dfcebbfbc02..191fd0699fb 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -6640,6 +6640,7 @@ cse_extended_basic_block (struct cse_basic_block_data *ebb_data)
equivalences due to the condition being tested. */
insn = BB_END (bb);
if (path_entry < path_size - 1
+ && EDGE_COUNT (bb->succs) == 2
&& JUMP_P (insn)
&& single_set (insn)
&& any_condjump_p (insn))