From: Jason Merrill Date: Tue, 9 Dec 1997 18:59:59 +0000 (+0000) Subject: init.c (expand_vec_init): Don't fold a list of parameters. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eb291d0511b87560d898b4925a392b6978caed6d;p=gcc.git init.c (expand_vec_init): Don't fold a list of parameters. * init.c (expand_vec_init): Don't fold a list of parameters. Fixes kde. From-SVN: r17031 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 66df1a76777..0ddfaf5f559 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,7 @@ Mon Dec 8 23:17:13 1997 Jason Merrill + * 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 Tue Mar 12 14:36:02 1996 Jason Merrill * 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. diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 2ad20ffb9b3..87c8e8c785c 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -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),