init.c (expand_vec_init): Don't fold a list of parameters.
authorJason Merrill <jason@yorick.cygnus.com>
Tue, 9 Dec 1997 18:59:59 +0000 (18:59 +0000)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 9 Dec 1997 18:59:59 +0000 (13:59 -0500)
* init.c (expand_vec_init): Don't fold a list of parameters.

Fixes kde.

From-SVN: r17031

gcc/cp/ChangeLog
gcc/cp/init.c

index 66df1a767779625abf8482d15084df243a354393..0ddfaf5f559391df7eb88e789cd7383a0ca2150c 100644 (file)
@@ -1,5 +1,7 @@
 Mon Dec  8 23:17:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
+       * init.c (expand_vec_init): Don't fold a list of parameters.
+
        * decl.c (copy_args_p): Handle copy elision for types with virtual
        bases.
        * call.c (build_over_call): Likewise.
@@ -5314,7 +5316,7 @@ Wed Mar 13 14:03:34 1996  Jason Merrill  <jason@yorick.cygnus.com>
 Tue Mar 12 14:36:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
 
        * init.c (build_new): Pedwarn about init and array new.
-       (expand_vec_init): Handle lists, use convert_for_initialization
+       (expand_vec_init): Handle lists, use convert_for_initialization.
 
        * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
        when converting to an aggregate type.
index 2ad20ffb9b3d29c03285e1fbe0ebef79031a7645..87c8e8c785c5506186471e564192dc202b5d799e 100644 (file)
@@ -3036,9 +3036,6 @@ expand_vec_init (decl, base, maxindex, init, from_array)
   expand_assignment (rval, base, 0, 0);
   base = get_temp_regvar (build_pointer_type (type), base);
 
-  if (init != NULL_TREE && TREE_CODE (init) == TREE_LIST)
-    init = build_compound_expr (init);
-
   if (init != NULL_TREE
       && TREE_CODE (init) == CONSTRUCTOR
       && (! decl || TREE_TYPE (init) == TREE_TYPE (decl)))
@@ -3154,18 +3151,7 @@ expand_vec_init (decl, base, maxindex, init, from_array)
                           array_type_nelts (type), 0, 0);
        }
       else
-       {
-         tree targ = build1 (INDIRECT_REF, type, base);
-         tree rhs;
-
-         if (init)
-           rhs = convert_for_initialization (targ, type, init, LOOKUP_NORMAL,
-                                             "initialization", NULL_TREE, 0);
-         else
-           rhs = NULL_TREE;
-
-         expand_aggr_init (targ, rhs, 0, 0);
-       }
+       expand_aggr_init (build1 (INDIRECT_REF, type, base), init, 0, 0);
 
       expand_assignment (base,
                         build (PLUS_EXPR, build_pointer_type (type), base, size),