aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimplify.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 69fe089..21115da 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2007-01-01 Andrew Pinski <pinskia@gmail.com>
+ * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
+ Use a temporary variable if the left hand side is not a gimple
+ register.
+
+2007-01-01 Andrew Pinski <pinskia@gmail.com>
+
* gimplify.c (gimplify_return_expr): Make the temporary variable
for the return expression, a gimple register variable.
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 1a40e8f..5df8579 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -3190,6 +3190,8 @@ gimplify_init_constructor (tree *expr_p, tree *pre_p,
if (tret == GS_ERROR)
ret = GS_ERROR;
}
+ if (!is_gimple_reg (GENERIC_TREE_OPERAND (*expr_p, 0)))
+ GENERIC_TREE_OPERAND (*expr_p, 1) = get_formal_tmp_var (ctor, pre_p);
}
break;