diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-08-26 09:31:30 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-08-26 09:31:30 +0200 |
commit | fa1ff4eb8cb4ec1474d6ab338b6840a2140b588d (patch) | |
tree | 87d9a8578bc5a8967ed24c9ba921f21c3bccb117 /gcc/cfgexpand.c | |
parent | 7acf7efa8947cf2990cbdc670ea3adeace4a4394 (diff) | |
download | gcc-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.c | 2 |
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; |