[PATCH] D89559: PR47372: Fix Lambda invoker calling conventions

John McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 29 14:23:46 PDT 2020


rjmccall accepted this revision.
rjmccall added a comment.
This revision is now accepted and ready to land.

Alright, LGTM.



================
Comment at: clang/include/clang/AST/DeclCXX.h:1013
   CXXMethodDecl *getLambdaStaticInvoker() const;
+  CXXMethodDecl *getLambdaStaticInvoker(CallingConv CC) const;
+
----------------
erichkeane wrote:
> erichkeane wrote:
> > rjmccall wrote:
> > > Probably worth clarifying in the comment which invoker is returned by the no-arguments variant.
> > I just looked and the first is actually only used 1x!  I think I can just replace that usage and remove the former overload if that is acceptable to you.
> On second thought... I might leave this alone.  Otherwise the ItaniumMangler basically needs to reproduce the functionality.  I think the improved comment is an appropriate change here.
Fine by me.


================
Comment at: clang/lib/AST/DeclCXX.cpp:1550
+                 return FTy->getCallConv() == CC;
+               });
+
----------------
erichkeane wrote:
> rjmccall wrote:
> > This seems both rather more complicated and rather more expensive than a simple loop which assigns to a local pointer.
> Do you mean the filtering copy-if?  The idea was to make it so that the assert below still applies.  If that isn't necessary, this DOES simplify to a std::find and a return.
I mean that if you really want to assert that, you could do so by checking whether the existing function is the same as what you've already found; you don't need a vector.  But just not checking that seems fine to me.


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

https://reviews.llvm.org/D89559



More information about the cfe-commits mailing list