This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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 think this approach makes sense, but it should go in type_dependent_expression_p rather than instantiation_dependent_r.

And please revert my fix for 56794, since this should fix one as well.
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 considered replacing it with uses_template_parms?!? Testing is fine with it too. It's also fine with both type_dependent_expression_p || value_dependent_expression_p.

Eventually, we'll have to decide where we want to commit this: 56794 is fixed in 4.7 and 4.8 too, but it's true that the issue with the specific testcase attached by Jon isn't a regression.

Thanks,
Paolo.

////////////////

Attachment: CL_53211
Description: Text document

Attachment: patch_53211_2
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]