aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgrtl.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-06-30 10:04:24 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2003-06-30 08:04:24 +0000
commit3cf5441285f6cbe220ae11903f45b99ed8932054 (patch)
tree847cd87faef7585b5efe77617a13a659c98d57f4 /gcc/cfgrtl.c
parent1f48e56d098e957e5ed2e40cdd21ad8262679993 (diff)
downloadgcc-3cf5441285f6cbe220ae11903f45b99ed8932054.zip
gcc-3cf5441285f6cbe220ae11903f45b99ed8932054.tar.gz
gcc-3cf5441285f6cbe220ae11903f45b99ed8932054.tar.bz2
cfgrtl.c (verify_flow_info): Accept degenerated condjumps in cfglayout mode.
* cfgrtl.c (verify_flow_info): Accept degenerated condjumps in cfglayout mode. From-SVN: r68694
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r--gcc/cfgrtl.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index d37666d..f1dedde 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -1823,7 +1823,7 @@ rtl_verify_flow_info_1 (void)
FOR_EACH_BB_REVERSE (bb)
{
int n_fallthru = 0, n_eh = 0, n_call = 0, n_abnormal = 0, n_branch = 0;
- edge e;
+ edge e, fallthru = NULL;
rtx note;
if (INSN_P (bb->end)
@@ -1841,7 +1841,7 @@ rtl_verify_flow_info_1 (void)
for (e = bb->succ; e; e = e->succ_next)
{
if (e->flags & EDGE_FALLTHRU)
- n_fallthru++;
+ n_fallthru++, fallthru = e;
if ((e->flags & ~(EDGE_DFS_BACK | EDGE_CAN_FALLTHRU | EDGE_IRREDUCIBLE_LOOP)) == 0)
n_branch++;
@@ -1880,7 +1880,7 @@ rtl_verify_flow_info_1 (void)
err = 1;
}
if (n_branch != 1 && any_condjump_p (bb->end)
- && JUMP_LABEL (bb->end) != bb->next_bb->head)
+ && JUMP_LABEL (bb->end) != fallthru->dest->head)
{
error ("Wrong amount of branch edges after conditional jump %i", bb->index);
err = 1;