aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgrtl.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-06-20 16:42:19 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2018-06-20 16:42:19 +0200
commitd53e8ef490e59839909b536b1cf1d8aaaecfe43f (patch)
tree1374584b774dedd6843360e3287f6ce7144cdf27 /gcc/cfgrtl.c
parent335a120f7fc249992772fbabe5ad9375443a0848 (diff)
downloadgcc-d53e8ef490e59839909b536b1cf1d8aaaecfe43f.zip
gcc-d53e8ef490e59839909b536b1cf1d8aaaecfe43f.tar.gz
gcc-d53e8ef490e59839909b536b1cf1d8aaaecfe43f.tar.bz2
cfgrtl.c (rtl_verify_edges): Formatting fix.
* cfgrtl.c (rtl_verify_edges): Formatting fix. If bb->preds has any EDGE_EH edges, verify they are all EDGE_EH. From-SVN: r261803
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r--gcc/cfgrtl.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index de704ce..19cef22 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -2540,15 +2540,15 @@ rtl_verify_edges (void)
n_abnormal++;
}
- if (!has_crossing_edge
- && JUMP_P (BB_END (bb))
- && CROSSING_JUMP_P (BB_END (bb)))
- {
- print_rtl_with_bb (stderr, get_insns (), TDF_BLOCKS | TDF_DETAILS);
- error ("Region crossing jump across same section in bb %i",
- bb->index);
- err = 1;
- }
+ if (!has_crossing_edge
+ && JUMP_P (BB_END (bb))
+ && CROSSING_JUMP_P (BB_END (bb)))
+ {
+ print_rtl_with_bb (stderr, get_insns (), TDF_BLOCKS | TDF_DETAILS);
+ error ("Region crossing jump across same section in bb %i",
+ bb->index);
+ err = 1;
+ }
if (n_eh && !find_reg_note (BB_END (bb), REG_EH_REGION, NULL_RTX))
{
@@ -2606,6 +2606,19 @@ rtl_verify_edges (void)
error ("abnormal edges for no purpose in bb %i", bb->index);
err = 1;
}
+
+ int has_eh = -1;
+ FOR_EACH_EDGE (e, ei, bb->preds)
+ {
+ if (has_eh == -1)
+ has_eh = (e->flags & EDGE_EH);
+ if ((e->flags & EDGE_EH) == has_eh)
+ continue;
+ error ("EH incoming edge mixed with non-EH incoming edges "
+ "in bb %i", bb->index);
+ err = 1;
+ break;
+ }
}
/* If there are partitions, do a sanity check on them: A basic block in