aboutsummaryrefslogtreecommitdiff
path: root/gcc/graph.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-03-20 09:03:06 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-03-20 09:03:06 +0000
commita271b42dfb37eba7e6e4c567496d5b58d9f2e012 (patch)
tree94bdf259b8ca49c1e5c3f91c1eaf773c30e89dcd /gcc/graph.c
parentebd65954f02ef75f7efd625c4fa8309e04a7a4de (diff)
downloadgcc-a271b42dfb37eba7e6e4c567496d5b58d9f2e012.zip
gcc-a271b42dfb37eba7e6e4c567496d5b58d9f2e012.tar.gz
gcc-a271b42dfb37eba7e6e4c567496d5b58d9f2e012.tar.bz2
cfgloop.c (verify_loop_structure): Streamline and avoid ICEing on corrupt loop tree.
2013-03-20 Richard Biener <rguenther@suse.de> * cfgloop.c (verify_loop_structure): Streamline and avoid ICEing on corrupt loop tree. * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt loop tree. From-SVN: r196811
Diffstat (limited to 'gcc/graph.c')
-rw-r--r--gcc/graph.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/graph.c b/gcc/graph.c
index 5183730..1ecfdf0 100644
--- a/gcc/graph.c
+++ b/gcc/graph.c
@@ -213,7 +213,8 @@ draw_cfg_nodes_for_loop (pretty_printer *pp, int funcdef_no,
unsigned int i;
const char *fillcolors[3] = { "grey88", "grey77", "grey66" };
- if (loop->latch != EXIT_BLOCK_PTR)
+ if (loop->header != NULL
+ && loop->latch != EXIT_BLOCK_PTR)
pp_printf (pp,
"\tsubgraph cluster_%d_%d {\n"
"\tstyle=\"filled\";\n"
@@ -229,6 +230,9 @@ draw_cfg_nodes_for_loop (pretty_printer *pp, int funcdef_no,
for (struct loop *inner = loop->inner; inner; inner = inner->next)
draw_cfg_nodes_for_loop (pp, funcdef_no, inner);
+ if (loop->header == NULL)
+ return;
+
if (loop->latch == EXIT_BLOCK_PTR)
body = get_loop_body (loop);
else