aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog.parloop5
-rw-r--r--gcc/tree-parloops.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog.parloop b/gcc/ChangeLog.parloop
index 1bf3ca75279..ad531d1d1d2 100644
--- a/gcc/ChangeLog.parloop
+++ b/gcc/ChangeLog.parloop
@@ -1,3 +1,8 @@
+2006-10-01 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-parloops.c (eliminate_local_variables_1): Handle addresses of
+ non-decls correctly.
+
2006-09-27 Zdenek Dvorak <dvorakz@suse.cz>
Branch created. Initial commit.
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index bb7305aed30..9e558420859 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -319,10 +319,12 @@ eliminate_local_variables_1 (tree *tp, int *walk_subtrees, void *data)
if (TREE_CODE (t) == ADDR_EXPR)
{
- *walk_subtrees = 0;
-
var = TREE_OPERAND (t, 0);
- if (DECL_EXTERNAL (var))
+ if (!DECL_P (var))
+ return NULL_TREE;
+
+ *walk_subtrees = 0;
+ if (!SSA_VAR_P (var) || DECL_EXTERNAL (var))
return NULL_TREE;
addr_type = TREE_TYPE (t);