[PATCH] D57464: Generalize method overloading on addr spaces to C++

Bevin Hansson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 14 05:48:56 PDT 2019

ebevhan added a comment.

In D57464#1425904 <https://reviews.llvm.org/D57464#1425904>, @Anastasia wrote:

> I think not. :( But I am wondering if we could proceed for now in some general direction and then make any improvements later. Probably the biggest part of this patch is not going to change. Would this make sense?

Well, I'm still not convinced that it's the right way to do it...  And it feels a bit off to fix things later if we pretty much know what the correct way is now. It feels a bit unreasonable to ask for a larger redesign since this has been laying for a while at this point, but I think that if we're going to do it we should do it right from the start.

I think that the way to approach it is either to

- Pass a pointer to the `LateParsedAttrList` down through the `Parse*Declarator` functions and `ParseTypeQualifierListOpt` and use it appropriately in `ParseFunctionDeclarator`. That's fairly invasive in all of the callers of the declarator parsing functions, though.
- Store a pointer to the `LateParsedAttrList` in `Declarator` and use it the same way as above. This avoids messing with most of the existing functions, but makes Declarator a bit larger.

I think I would lean towards the latter since it means less fudging around with a whole bunch of unrelated methods. Do @rjmccall or @rsmith have any further opinions on this?



More information about the cfe-commits mailing list