From b90e45aed287fbba1e7baf0b1e39107f85756793 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 14 Jan 2002 20:21:21 +0100 Subject: [PATCH] cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite threaded loop. * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite threaded loop. From-SVN: r48837 --- gcc/ChangeLog | 5 +++++ gcc/cfgcleanup.c | 5 ++++- gcc/toplev.c | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bed8af0e050..e95275f27a3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Jan 14 20:18:19 CET 2002 Jan Hubicka + + * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite + threaded loop. + 2002-01-14 Tom Rix * config/rs6000/rs6000.md: Fix typo with sradi. diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 5015c814941..13c5a8e1352 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -426,7 +426,10 @@ try_forward_edges (mode, b) if (threaded_edges[i] == t) break; if (i < nthreaded_edges) - break; + { + counter = n_basic_blocks; + break; + } } /* Detect an infinite loop across the start block. */ diff --git a/gcc/toplev.c b/gcc/toplev.c index 5d58ead1fd2..e8b6102d8d6 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2810,6 +2810,7 @@ rest_of_compilation (decl) find_basic_blocks (insns, max_reg_num (), rtl_dump_file); cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP); tem = gcse_main (insns, rtl_dump_file); + rebuild_jump_labels (insns); save_csb = flag_cse_skip_blocks; save_cfj = flag_cse_follow_jumps; -- 2.30.2