diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-ch.c | 2 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-im.c | 3 |
3 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0a14a0d..da3f3de 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-12-13 Daniel Berlin <dberlin@dberlin.org> + + * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null. + * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real + inner loop. + 2004-12-12 Diego Novillo <dnovillo@redhat.com> * tree-gimple.c (get_base_address): Update documentation. diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c index 71d1bf2..e307528 100644 --- a/gcc/tree-ssa-loop-ch.c +++ b/gcc/tree-ssa-loop-ch.c @@ -152,6 +152,8 @@ copy_loop_headers (void) int limit = 20; loop = loops->parray[i]; + if (!loop) + continue; header = loop->header; /* If the loop is already a do-while style one (either because it was diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index 16e477c..05970f8 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -1252,6 +1252,9 @@ determine_lsm (struct loops *loops) struct loop *loop; basic_block bb; + if (!loops->tree_root->inner) + return; + /* Create a UID for each statement in the function. Ordering of the UIDs is not important for this pass. */ max_stmt_uid = 0; |