From d57ad61042fd1ced1a4bd6b5856accb690f321c1 Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 2 Nov 2011 21:24:56 +0000 Subject: 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180802 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/tree.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/cp/tree.c') diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 707f2c8aeba..dc9fc954e41 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), -- cgit v1.2.1