]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
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 69fe0892694ff9de2dc643e5ccbfda9a7c3df7a3..21115da1b6ff5925ac62c9ffeb338194cf5c29d8 100644 (file)
@@ -1,3 +1,9 @@
+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
index 1a40e8fe2142197201c84a87ecd932f76090803e..5df8579913ac37c1c3c2eb9c2355464843923014 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;