diff options
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/gimplify.c | 2 |
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; |
