================ @@ -141,6 +190,44 @@ arrangeFreeFunctionLikeCall(CIRGenTypes &cgt, CIRGenModule &cgm, return cgt.arrangeCIRFunctionInfo(retType, argTypes, required); } +/// Arrange a call to a C++ method, passing the given arguments. +/// +/// passProtoArgs indicates whether `args` has args for the parameters in the +/// given CXXConstructorDecl. +const CIRGenFunctionInfo &CIRGenTypes::arrangeCXXConstructorCall( + const CallArgList &args, const CXXConstructorDecl *d, CXXCtorType ctorKind, + bool passProtoArgs) { + + // FIXME: Kill copy. ---------------- erichkeane wrote:
The only idea I have for us to do something like this, would be to have `arrangeCIRFunctionInfo` to have a optional `arg-transform` function. So it becomes: `arrangeCIRFunctionInfo(resultType, argTypes, [&](auto *arg) { astContext.getCanonicalParamType(arg.ty);});` Alternatively, have it take some sort of mutating range, which does the work for us? Or maybe build that into CallArgList, and have `arrangeCIRFunctionInfo` take a `CallArgList` and use a `arg.getCanonicalParamType()` on CallArg's object. WDYT? https://github.com/llvm/llvm-project/pull/143579 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits