diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1998-05-05 23:54:18 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-05-05 19:54:18 -0400 |
commit | 0fac6b0b32f12da03f8443883fa6434db14b55a6 (patch) | |
tree | e2cf380d5c76f06511c24bbb377d937c75317669 /gcc | |
parent | 25cf40e29d42a562eeaad8d6015d9d7cd14b46f6 (diff) | |
download | gcc-0fac6b0b32f12da03f8443883fa6434db14b55a6.zip gcc-0fac6b0b32f12da03f8443883fa6434db14b55a6.tar.gz gcc-0fac6b0b32f12da03f8443883fa6434db14b55a6.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/init.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index eb5c261..6b34102 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Tue May 5 23:54:04 1998 Jason Merrill <jason@yorick.cygnus.com> + + * 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 <amacleod@cygnus.com> * 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 a783fe5..d95de78 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)); |