diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-30 14:22:01 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-30 14:22:01 +0000 |
commit | f484312fbab6135dc4ac30fbc504ae02848794e3 (patch) | |
tree | 457fdcb67b1c577c541ea2d0bca4de7a96d2ed55 /gcc/graph.c | |
parent | 06cfe8053727d82556cf0d37e53dd6e09ef2d6e6 (diff) | |
download | gcc-f484312fbab6135dc4ac30fbc504ae02848794e3.tar.gz |
2013-10-30 Richard Biener <rguenther@suse.de>
PR middle-end/57100
* basic-block.h (pre_and_rev_post_order_compute_fn): New function.
* cfganal.c (pre_and_rev_post_order_compute_fn): New function
as worker for ...
(pre_and_rev_post_order_compute): ... which now wraps it.
* graph.c (draw_cfg_nodes_no_loops): Use
pre_and_rev_post_order_compute_fn to avoid ICEing and dependence
on cfun.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204211 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graph.c')
-rw-r--r-- | gcc/graph.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/graph.c b/gcc/graph.c index 0ec279d86a9..5c890e5956c 100644 --- a/gcc/graph.c +++ b/gcc/graph.c @@ -160,9 +160,9 @@ draw_cfg_nodes_no_loops (pretty_printer *pp, struct function *fun) visited = sbitmap_alloc (last_basic_block); bitmap_clear (visited); - /* FIXME: pre_and_rev_post_order_compute only works if fun == cfun. */ - n = pre_and_rev_post_order_compute (NULL, rpo, true); - for (i = 0; i < n; i++) + n = pre_and_rev_post_order_compute_fn (fun, NULL, rpo, true); + for (i = n_basic_blocks_for_function (fun) - n; + i < n_basic_blocks_for_function (fun); i++) { basic_block bb = BASIC_BLOCK (rpo[i]); draw_cfg_node (pp, fun->funcdef_no, bb); |