================ @@ -1344,14 +1344,134 @@ void CIRGenFunction::emitCXXConstructorCall(const clang::CXXConstructorDecl *d, assert(!cir::MissingFeatures::opCallArgEvaluationOrder()); - emitCallArgs(args, fpt, e->arguments(), e->getConstructor(), - /*ParamsToSkip=*/0); + if (auto inherited = d->getInheritedConstructor(); ---------------- erichkeane wrote:
This is the bug from classic codegen that I mention in the comments of the test. Basically everywhere else we do the `passParams` stuff, which makes sure we don't create all the arguments for the base constructor we don't need. The other `emitCXXConstructorCall` doesn't always get called, particularly in the 'base' situation. So we need this to omit them in this variant. The condition used could be nicer looking, but it is supposed to be the same logic as the `passParams` everywhere else. https://github.com/llvm/llvm-project/pull/191467 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
