erichkeane added inline comments.

================
Comment at: clang/lib/Sema/SemaTemplateInstantiate.cpp:2330
+  /// To achieve that, we remove all non-selected destructors from the AST,
+  /// which is a bit unusual. We can't let those declarations be in AST and 
rely
+  /// on LookupSpecialMember to return the correct declaration because a lot of
----------------
royjacobson wrote:
> cor3ntin wrote:
> > erichkeane wrote:
> > > I don't think this ends up being acceptable (removing them from the AST). 
> > >  Instead, we should probably mark them as "invalid" and update 
> > > getDestructor to only return the 'only' destructor, or the first 
> > > not-invalid one.
> > I'd rather we stay consistent with the wording, keep track of a selected 
> > destructor which would be returned by `getDestructor`. it's more surgery 
> > but it's a lot cleaner imo
> Corentin, do you suggest doing this in CXXRecordDecl explicitly?
> 
> Erich - I agree, this seems like a better solution, although this is a bit of 
> abuse to 'invalid' in the case of less-constrained candidates. Ideally we 
> might want another AST property of 'eligible' and keep track of things there, 
> but I don't really know the AST code well enough to do it.
I like the idea of marking them eligible that way.  If this JUST has to do with 
Destructors for now, adding a bit to `CXXDestructorDecl` is a pretty trivial 
thing to do.  I'm pretty sure it is defined in `DeclCXX.h`. At that point, we 
just need to make sure it is checked during 'getDestructor' (or at least, 
around any calls to that).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126194/new/

https://reviews.llvm.org/D126194

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to