diff options
author | Jason Merrill <jason@redhat.com> | 2011-11-02 17:24:56 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-11-02 17:24:56 -0400 |
commit | e08cc018ac1ed9e201d064c52d0a378b7014e636 (patch) | |
tree | 5cbcad8071adf2d4745f46369c097544401fe5d8 /gcc/cp/tree.c | |
parent | 537e309ce321c058535a935e37b005069ef388d5 (diff) | |
download | gcc-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.c | 4 |
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), |