On 05/20/2014 10:50 AM, Paolo Carlini wrote:
+ if (TREE_TYPE (init) != type)
+ {
+ if (BRACE_ENCLOSED_INITIALIZER_P (init)
+ && CP_AGGREGATE_TYPE_P (type))
+ init = reshape_init (type, init, tf_warning_or_error);
+ init = digest_init (type, init, tf_warning_or_error);
Instead of this let's factor the relevant code out of
cp_parser_late_parse_one_default_arg and use it here as well. That is,
int flags = LOOKUP_IMPLICIT;
if (DIRECT_LIST_INIT_P (parsed_arg))
flags = LOOKUP_NORMAL;
parsed_arg = digest_init_flags (TREE_TYPE (decl), parsed_arg, flags);
if (TREE_CODE (parsed_arg) == TARGET_EXPR)
/* This represents the whole initialization. */
TARGET_EXPR_DIRECT_INIT_P (parsed_arg) = true;
Jason