aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/tree.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-11-02 17:24:56 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-11-02 17:24:56 -0400
commite08cc018ac1ed9e201d064c52d0a378b7014e636 (patch)
tree5cbcad8071adf2d4745f46369c097544401fe5d8 /gcc/cp/tree.c
parent537e309ce321c058535a935e37b005069ef388d5 (diff)
downloadgcc-e08cc018ac1ed9e201d064c52d0a378b7014e636.zip
gcc-e08cc018ac1ed9e201d064c52d0a378b7014e636.tar.gz
gcc-e08cc018ac1ed9e201d064c52d0a378b7014e636.tar.bz2
re PR c++/50930 ([C++0x] Valid brace-or-equal-initializer of non-static data member rejected)
PR c++/50930 * init.c (build_aggr_init): Don't set LOOKUP_ONLYCONVERTING if the initializer has TARGET_EXPR_DIRECT_INIT_P. (expand_default_init): An initializer with TARGET_EXPR_DIRECT_INIT_P or TARGET_EXPR_LIST_INIT_P doesn't need more processing. * tree.c (bot_manip): Propagate TARGET_EXPR_IMPLICIT_P, TARGET_EXPR_LIST_INIT_P, TARGET_EXPR_DIRECT_INIT_P. * call.c (convert_like_real): Set TARGET_EXPR_DIRECT_INIT_P as appropriate on list-value-initialization. From-SVN: r180802
Diffstat (limited to 'gcc/cp/tree.c')
-rw-r--r--gcc/cp/tree.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 707f2c8..dc9fc95 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1889,6 +1889,10 @@ bot_manip (tree* tp, int* walk_subtrees, void* data)
u = build_target_expr_with_type (TREE_OPERAND (t, 1), TREE_TYPE (t),
tf_warning_or_error);
+ TARGET_EXPR_IMPLICIT_P (u) = TARGET_EXPR_IMPLICIT_P (t);
+ TARGET_EXPR_LIST_INIT_P (u) = TARGET_EXPR_LIST_INIT_P (t);
+ TARGET_EXPR_DIRECT_INIT_P (u) = TARGET_EXPR_DIRECT_INIT_P (t);
+
/* Map the old variable to the new one. */
splay_tree_insert (target_remap,
(splay_tree_key) TREE_OPERAND (t, 0),