Re: [C++ Patch/RFC] PR 58753 & 58930

2014-05-20 Thread Jason Merrill
OK. Jason

Re: [C++ Patch/RFC] PR 58753 & 58930

2014-05-20 Thread Paolo Carlini
Hi, On 05/20/2014 05:08 PM, Jason Merrill wrote: 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); +

Re: [C++ Patch/RFC] PR 58753 & 58930

2014-05-20 Thread Jason Merrill
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, t

Re: [C++ Patch/RFC] PR 58753 & 58930

2014-05-20 Thread Paolo Carlini
Hi, On 05/19/2014 08:28 PM, Jason Merrill wrote: How about doing digest_init in get_nsdmi, so that the conversion is also exposed to walk_field_subobs? Thus, good news: something as simple as the below passes testing, works for the 2 bugs and for c++/58704 too. Thus, what else? Personally, I'm

Re: [C++ Patch/RFC] PR 58753 & 58930

2014-05-19 Thread Paolo Carlini
Hi, > On 19/mag/2014, at 20:28, Jason Merrill wrote: > > How about doing digest_init in get_nsdmi, so that the conversion is also > exposed to walk_field_subobs? Thanks, I'll look into that. Paolo

Re: [C++ Patch/RFC] PR 58753 & 58930

2014-05-19 Thread Jason Merrill
How about doing digest_init in get_nsdmi, so that the conversion is also exposed to walk_field_subobs? Jason

Re: [C++ Patch/RFC] PR 58753 & 58930

2014-05-15 Thread Paolo Carlini
.. in case it would be useful to better analyze the issue and my tentative fix, I ran the C++ and C++ runtime testsuite with an appropriate gcc_assert, and the added DIRECT_LIST_INIT_P (init) case matters only for the existing cpp1y/pr58708.C (besides the new testcases, of course). Also, in c

[C++ Patch/RFC] PR 58753 & 58930

2014-05-15 Thread Paolo Carlini
Hi, I'm trying to make progress on these two issues, which seem closely related to me. Both only happen for NSDMIs in template classes, thus when cp_parser_late_parse_one_default_arg sees processing_template_decl != 0 and doesn't call digest_init_flags directly, thus produces a CONSTRUCTOR (v