From a352b7102707500d1977c714d41d799b27de0a49 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Tue, 13 Oct 2015 22:10:45 +0000 Subject: Check no unreachable blocks in inverted_post_order_compute 2015-10-14 Tom de Vries * cfganal.c (verify_no_unreachable_blocks): New function. (inverted_post_order_compute) [ENABLE_CHECKING]: Call verify_no_unreachable_blocks. cfganal.h (verify_no_unreachable_blocks): Declare. From-SVN: r228789 --- gcc/cfganal.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gcc/cfganal.c') diff --git a/gcc/cfganal.c b/gcc/cfganal.c index 279c3b5..1f935eb 100644 --- a/gcc/cfganal.c +++ b/gcc/cfganal.c @@ -193,6 +193,19 @@ find_unreachable_blocks (void) free (worklist); } + +/* Verify that there are no unreachable blocks in the current function. */ + +void +verify_no_unreachable_blocks (void) +{ + find_unreachable_blocks (); + + basic_block bb; + FOR_EACH_BB_FN (bb, cfun) + gcc_assert ((bb->flags & BB_REACHABLE) != 0); +} + /* Functions to access an edge list with a vector representation. Enough data is kept such that given an index number, the @@ -772,6 +785,10 @@ inverted_post_order_compute (int *post_order) int post_order_num = 0; sbitmap visited; +#if ENABLE_CHECKING + verify_no_unreachable_blocks (); +#endif + /* Allocate stack for back-tracking up CFG. */ stack = XNEWVEC (edge_iterator, n_basic_blocks_for_fn (cfun) + 1); sp = 0; -- cgit v1.1