Re: [C++ Patch / RFC] PR 53211

2013-06-18 Thread Jason Merrill
On 06/17/2013 08:21 PM, Paolo Carlini wrote: I see... There is a little difficulty in that 56794 involves a non-type variadic parameter and in that case type_dependent_expression_p returns false. If I use value_dependent_expression_p things work, but I'm not sure it's 100% correct. I don't

Re: [C++ Patch / RFC] PR 53211

2013-06-18 Thread Paolo Carlini
Hi, On 06/18/2013 04:15 PM, Jason Merrill wrote: On 06/17/2013 08:21 PM, Paolo Carlini wrote: I see... There is a little difficulty in that 56794 involves a non-type variadic parameter and in that case type_dependent_expression_p returns false. If I use value_dependent_expression_p things

Re: [C++ Patch / RFC] PR 53211

2013-06-18 Thread Jason Merrill
On 06/18/2013 10:46 AM, Paolo Carlini wrote: Ah, fantastic. I really hoped we could say something like that but seemed too easy ;) I'm finishing testing the below then. OK. Jason

[C++ Patch / RFC] PR 53211

2013-06-17 Thread Paolo Carlini
Hi, while triaging this PR (the original issue is already fixed) Jonathan added to the audit trail the attached testcase, which we are still mishandling. It seems to me that something is wrong in instantiation_dependent_expression_p: when finish_decltype_type is called the first time by the

Re: [C++ Patch / RFC] PR 53211

2013-06-17 Thread Jason Merrill
On 06/17/2013 04:08 PM, Paolo Carlini wrote: + if (TREE_CODE (TREE_TYPE (*tp)) == ARRAY_TYPE + !TYPE_DOMAIN (TREE_TYPE (*tp)) + DECL_INITIAL (*tp) + type_dependent_expression_p (DECL_INITIAL (*tp))) + return *tp; I think this approach makes sense, but it

Re: [C++ Patch / RFC] PR 53211

2013-06-17 Thread Paolo Carlini
Hi, On 06/17/2013 10:30 PM, Jason Merrill wrote: On 06/17/2013 04:08 PM, Paolo Carlini wrote: + if (TREE_CODE (TREE_TYPE (*tp)) == ARRAY_TYPE + !TYPE_DOMAIN (TREE_TYPE (*tp)) + DECL_INITIAL (*tp) + type_dependent_expression_p (DECL_INITIAL (*tp))) +return *tp; I