From: Jason Merrill Date: Thu, 18 Dec 2003 21:29:21 +0000 (-0500) Subject: re PR c++/12253 ([tree-ssa] ICE on conversion to std::string inside array initialization) X-Git-Tag: releases/gcc-3.3.3~180 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=156df3bd86b69f8727695037692ded2985e77a1b;p=thirdparty%2Fgcc.git re PR c++/12253 ([tree-ssa] ICE on conversion to std::string inside array initialization) PR c++/12253 * init.c (build_vec_init): Initialization of an element from an initializer list is also a full-expression. From-SVN: r74804 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 61f318fa7578..c8479b60516c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2003-12-18 Jason Merrill + + PR c++/12253 + * init.c (build_vec_init): Initialization of an element from + an initializer list is also a full-expression. + 2003-12-18 Kriang Lerdsuwanakij PR c++/13262 diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 91ea10c16cba..c620409339b3 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2832,11 +2832,13 @@ build_vec_init (base, maxindex, init, from_array) num_initialized_elts++; + current_stmt_tree ()->stmts_are_full_exprs_p = 1; if (IS_AGGR_TYPE (type) || TREE_CODE (type) == ARRAY_TYPE) finish_expr_stmt (build_aggr_init (baseref, elt, 0)); else finish_expr_stmt (build_modify_expr (baseref, NOP_EXPR, elt)); + current_stmt_tree ()->stmts_are_full_exprs_p = 0; finish_expr_stmt (build_unary_op (PREINCREMENT_EXPR, base, 0)); finish_expr_stmt (build_unary_op (PREDECREMENT_EXPR, iterator, 0));