From: Jason Merrill Date: Tue, 5 May 1998 23:54:18 +0000 (+0000) Subject: init.c (expand_vec_init): The initialization of each array element is a full-expression. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0fac6b0b32f12da03f8443883fa6434db14b55a6;p=gcc.git init.c (expand_vec_init): The initialization of each array element is a full-expression. * init.c (expand_vec_init): The initialization of each array element is a full-expression. From-SVN: r19557 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index eb5c2619da9..6b34102006d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Tue May 5 23:54:04 1998 Jason Merrill + + * init.c (expand_vec_init): The initialization of each array + element is a full-expression. + Tue May 5 18:24:13 EDT 1998 Andrew MacLeod * method.c: Add a call to build_type_variant to get the right type. diff --git a/gcc/cp/init.c b/gcc/cp/init.c index a783fe5c00d..d95de78206a 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2860,6 +2860,9 @@ expand_vec_init (decl, base, maxindex, init, from_array) expand_eh_region_start (); expand_start_loop_continue_elsewhere (1); + /* The initialization of each array element is a full-expression. */ + expand_start_target_temps (); + if (from_array) { tree to = build1 (INDIRECT_REF, type, base); @@ -2895,6 +2898,10 @@ expand_vec_init (decl, base, maxindex, init, from_array) if (base2) expand_assignment (base2, build (PLUS_EXPR, build_pointer_type (type), base2, size), 0, 0); + + /* Cleanup any temporaries needed for the initial value. */ + expand_end_target_temps (); + expand_loop_continue_here (); expand_exit_loop_if_false (0, build (NE_EXPR, boolean_type_node, build (PREDECREMENT_EXPR, ptrdiff_type_node, iterator, integer_one_node), minus_one));