summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cfganal.c5
-rw-r--r--gcc/cfgrtl.c1
3 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5100e798097..881dfe71165 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Thu May 9 14:55:39 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * cfganal.c (can_fallthru): Fix fast path.
+ * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
+ with edges to the next block.
+
Thu May 9 14:52:45 CEST 2002 Jan Hubicka <jh@suse.cz>
Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
diff --git a/gcc/cfganal.c b/gcc/cfganal.c
index 46c4758d3e7..f70c6c7b2fc 100644
--- a/gcc/cfganal.c
+++ b/gcc/cfganal.c
@@ -87,7 +87,10 @@ can_fallthru (src, target)
rtx insn = src->end;
rtx insn2 = target->head;
- if (src->index + 1 == target->index && !active_insn_p (insn2))
+ if (src->index + 1 != target->index)
+ return 0;
+
+ if (!active_insn_p (insn2))
insn2 = next_active_insn (insn2);
/* ??? Later we may add code to move jump tables offline. */
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index d96f677c989..cd3369c542e 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -1782,6 +1782,7 @@ verify_flow_info ()
if (INSN_P (bb->end)
&& (note = find_reg_note (bb->end, REG_BR_PROB, NULL_RTX))
+ && bb->succ && bb->succ->succ_next
&& any_condjump_p (bb->end))
{
if (INTVAL (XEXP (note, 0)) != BRANCH_EDGE (bb)->probability)