aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/init.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-11-06 20:46:45 -0400
committerJason Merrill <jason@gcc.gnu.org>2010-11-06 20:46:45 -0400
commit4de2f020aaca3d0a8112acc6234a34bb5d578fa0 (patch)
tree45f9728915ac3c72a301c98db3b78300411445b1 /gcc/cp/init.c
parentacd6cc816df8ceee71651b20fb028b00cb4a7e96 (diff)
downloadgcc-4de2f020aaca3d0a8112acc6234a34bb5d578fa0.zip
gcc-4de2f020aaca3d0a8112acc6234a34bb5d578fa0.tar.gz
gcc-4de2f020aaca3d0a8112acc6234a34bb5d578fa0.tar.bz2
init.c (perform_member_init): Use build_vec_init_expr for value-init of arrays, too.
* init.c (perform_member_init): Use build_vec_init_expr for value-init of arrays, too. * cp-gimplify.c (cp_gimplify_expr): Use VEC_INIT_EXPR_VALUE_INIT. * cp-tree.h (VEC_INIT_EXPR_IS_CONSTEXPR): New macro. (VEC_INIT_EXPR_VALUE_INIT): New macro. * semantics.c (potential_constant_expression): No longer static. Check VEC_INIT_EXPR_IS_CONSTEXPR. * tree.c (build_vec_init_expr): Handle value-init. Set VEC_INIT_EXPR_IS_CONSTEXPR and VEC_INIT_EXPR_VALUE_INIT. From-SVN: r166413
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r--gcc/cp/init.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index ab834bf..0ecd61d 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -453,10 +453,8 @@ perform_member_init (tree member, tree init)
/* mem() means value-initialization. */
if (TREE_CODE (type) == ARRAY_TYPE)
{
- init = build_vec_init (decl, NULL_TREE, NULL_TREE,
- /*explicit_value_init_p=*/true,
- /* from_array=*/0,
- tf_warning_or_error);
+ init = build_vec_init_expr (type, init);
+ init = build2 (INIT_EXPR, type, decl, init);
finish_expr_stmt (init);
}
else