diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-14 19:21:21 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-14 19:21:21 +0000 |
commit | e9bc5a2db9b1292880a3cdd3cc7231cb6a0b61cc (patch) | |
tree | edcef36f6f8778a85e7afe9512165986df634e90 /gcc | |
parent | b8dbae25ed7356d5c3bcc2f7696d240cce6e9af6 (diff) | |
download | ppe42-gcc-e9bc5a2db9b1292880a3cdd3cc7231cb6a0b61cc.tar.gz ppe42-gcc-e9bc5a2db9b1292880a3cdd3cc7231cb6a0b61cc.zip |
* cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
threaded loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48837 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgcleanup.c | 5 | ||||
-rw-r--r-- | gcc/toplev.c | 1 |
3 files changed, 10 insertions, 1 deletions
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 <jh@suse.cz> + + * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite + threaded loop. + 2002-01-14 Tom Rix <trix@redhat.com> * 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; |