aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfgrtl.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fafbdb9..d5d0c50 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jun 30 10:03:02 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * cfgrtl.c (verify_flow_info): Accept degenerated condjumps
+ in cfglayout mode.
+
Mon Jun 30 09:52:39 CEST 2003 Jan Hubicka <jh@suse.cz>
* i386.c (standard_80387_constant_p): Accept TFmode constants too.
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;