diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cfganal.c | 5 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 1 |
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) |