re PR middle-end/26807 (FAIL: gcc.dg/torture/pr24626-1.c -O2 (test for excess errors))
authorMaxim Kuvyrkov <mkuvyrkov@ispras.ru>
Tue, 13 Jun 2006 09:00:52 +0000 (09:00 +0000)
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>
Tue, 13 Jun 2006 09:00:52 +0000 (09:00 +0000)
2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

PR middle-end/26807
* haifa-sched.c (check_cfg): Handle special case.

From-SVN: r114606

gcc/ChangeLog
gcc/haifa-sched.c

index ef35c991c54a06d731837bb3cd465b86d49bb929..4d20b7ca3b7a68702da290f5af7eb5fd18802d8a 100644 (file)
@@ -1,3 +1,8 @@
+2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       PR middle-end/26807
+       * haifa-sched.c (check_cfg): Handle special case.
+
 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR debug/26754
index 70c13b1133af6b26a226737cdf7b5dea73aabd0c..3111ee9e76a1455e6c1ef99258d4a8c10a72b839 100644 (file)
@@ -4673,8 +4673,13 @@ check_cfg (rtx head, rtx tail)
                    gcc_assert (EDGE_COUNT (bb->succs) == 1
                                && BARRIER_P (NEXT_INSN (head)));
                  else if (any_condjump_p (head))
-                   gcc_assert (EDGE_COUNT (bb->succs) > 1
-                               && !BARRIER_P (NEXT_INSN (head)));
+                   gcc_assert (/* Usual case.  */
+                                (EDGE_COUNT (bb->succs) > 1
+                                 && !BARRIER_P (NEXT_INSN (head)))
+                                /* Or jump to the next instruction.  */
+                                || (EDGE_COUNT (bb->succs) == 1
+                                    && (BB_HEAD (EDGE_I (bb->succs, 0)->dest)
+                                        == JUMP_LABEL (head))));
                }
              if (BB_END (bb) == head)
                {