gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>): Use a temporary variable...
authorAndrew Pinski <pinskia@gmail.com>
Mon, 1 Jan 2007 22:01:59 +0000 (14:01 -0800)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Mon, 1 Jan 2007 22:01:59 +0000 (14:01 -0800)
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.

From-SVN: r120318

gcc/ChangeLog
gcc/gimplify.c

index 69fe089..21115da 100644 (file)
@@ -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.
 
index 1a40e8f..5df8579 100644 (file)
@@ -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;