aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-loop-ch.c2
-rw-r--r--gcc/tree-ssa-loop-im.c3
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;