]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/12253 ([tree-ssa] ICE on conversion to std::string inside array initialization)
authorJason Merrill <jason@redhat.com>
Thu, 18 Dec 2003 21:29:21 +0000 (16:29 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 18 Dec 2003 21:29:21 +0000 (16:29 -0500)
        PR c++/12253
        * init.c (build_vec_init): Initialization of an element from
        an initializer list is also a full-expression.

From-SVN: r74804

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

index 61f318fa7578359ffdcad4b9351cb8219fb7ca94..c8479b60516c95355e30d6b07f5f484ad636d298 100644 (file)
@@ -1,3 +1,9 @@
+2003-12-18  Jason Merrill  <jason@redhat.com>
+
+       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  <lerdsuwa@users.sourceforge.net>
 
        PR c++/13262
index 91ea10c16cba82cdbd7b1ec26ca3031edfa06c95..c620409339b32e3dd71cbdf8de1c5442d66caf23 100644 (file)
@@ -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));