aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-08-26 09:31:30 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2006-08-26 09:31:30 +0200
commitfa1ff4eb8cb4ec1474d6ab338b6840a2140b588d (patch)
tree87d9a8578bc5a8967ed24c9ba921f21c3bccb117 /gcc/cfgexpand.c
parent7acf7efa8947cf2990cbdc670ea3adeace4a4394 (diff)
downloadgcc-fa1ff4eb8cb4ec1474d6ab338b6840a2140b588d.zip
gcc-fa1ff4eb8cb4ec1474d6ab338b6840a2140b588d.tar.gz
gcc-fa1ff4eb8cb4ec1474d6ab338b6840a2140b588d.tar.bz2
re PR middle-end/28683 (ICE (segfault in add_reg_br_prob_note) when comparing pointers with -O (and higher))
PR middle-end/28683 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly 3 following insns. * gcc.c-torture/compile/20060823-1.c: New test. From-SVN: r116467
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r--gcc/cfgexpand.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 630a82a..9839d09 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -58,7 +58,9 @@ add_reg_br_prob_note (rtx last, int probability)
if (!any_condjump_p (last)
|| !JUMP_P (NEXT_INSN (last))
|| !simplejump_p (NEXT_INSN (last))
+ || !NEXT_INSN (NEXT_INSN (last))
|| !BARRIER_P (NEXT_INSN (NEXT_INSN (last)))
+ || !NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))
|| !LABEL_P (NEXT_INSN (NEXT_INSN (NEXT_INSN (last))))
|| NEXT_INSN (NEXT_INSN (NEXT_INSN (NEXT_INSN (last)))))
goto failed;