================ @@ -56,6 +60,25 @@ getImplicitObjectParamLifetimeBoundAttr(const FunctionDecl *FD); /// method or because it's a normal assignment operator. bool implicitObjectParamIsLifetimeBound(const FunctionDecl *FD); +using LifetimeBoundParamInfo = + llvm::PointerUnion<const ParmVarDecl *, const CXXMethodDecl *>; + +/// Returns the callee and arguments corresponding to Call. For instance member +/// calls, Args includes the implicit object argument as argument 0. +std::pair<const FunctionDecl *, llvm::SmallVector<const Expr *, 4>> +getFunctionCallInfo(const Expr *Call); ---------------- Xazax-hun wrote:
I wonder if this is the right name here. We basically destructure the function call into arguments and callee. I am almost wondering if we are actually doing a version of https://clang.llvm.org/doxygen/classclang_1_1AnyCall.html An alternative is to reuse that (and potentially add accessors for the arguments, not just the parameters). https://github.com/llvm/llvm-project/pull/206337 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
