From: Jan Hubicka Date: Mon, 14 Jan 2002 19:21:21 +0000 (+0100) Subject: cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite threaded loop. X-Git-Tag: prereleases/libstdc++-3.0.96~442 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b90e45aed287fbba1e7baf0b1e39107f85756793;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bed8af0e0504..e95275f27a38 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 5015c8149412..13c5a8e1352b 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 5d58ead1fd23..e8b6102d8d6c 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;