Lines Matching full:ctor
292 // If the record matches the base, this is the complete ctor/dtor
296 "doing no-op VTT offset in base dtor/ctor?");
634 static bool IsConstructorDelegationValid(const CXXConstructorDecl *Ctor) {
648 if (Ctor->getParent()->getNumVBases()) {
668 if (Ctor->getType()->getAs<FunctionProtoType>()->isVariadic())
672 if (Ctor->isDelegatingConstructor())
680 const CXXConstructorDecl *Ctor = cast<CXXConstructorDecl>(CurGD.getDecl());
685 if (CtorType == Ctor_Complete && IsConstructorDelegationValid(Ctor)) {
688 EmitDelegateCXXConstructorCall(Ctor, Ctor_Base, Args);
692 Stmt *Body = Ctor->getBody();
704 EmitCtorPrologue(Ctor, CtorType, Args);
1039 /// \param ctor the constructor to call for each element
1047 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1057 EmitCXXAggrConstructorCall(ctor, numElements, arrayBegin,
1064 /// \param ctor the constructor to call for each element
1069 /// \param arrayBegin a T*, where T is the type constructed by ctor
1073 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1116 QualType type = getContext().getTypeDeclType(ctor->getParent());
1136 !ctor->getParent()->hasTrivialDestructor()) {
1141 EmitCXXConstructorCall(ctor, Ctor_Complete, /*ForVirtualBase=*/ false,
1193 "trivial 0-arg ctor not a default ctor");
1197 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1198 assert(D->isCopyConstructor() && "trivial 1-arg ctor not a copy ctor");
1219 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1220 assert(D->isCopyConstructor() && "trivial 1-arg ctor not a copy ctor");
1268 CodeGenFunction::EmitDelegateCXXConstructorCall(const CXXConstructorDecl *Ctor,
1281 if (llvm::Value *VTT = GetVTTParameter(*this, GlobalDecl(Ctor, CtorType),
1299 EmitCall(CGM.getTypes().getFunctionInfo(Ctor, CtorType),
1300 CGM.GetAddrOfCXXConstructor(Ctor, CtorType),
1301 ReturnValueSlot(), DelegateArgs, Ctor);
1322 CodeGenFunction::EmitDelegatingCXXConstructorCall(const CXXConstructorDecl *Ctor,
1324 assert(Ctor->isDelegatingConstructor());
1331 EmitAggExpr(Ctor->init_begin()[0]->getInit(), AggSlot);
1333 const CXXRecordDecl *ClassDecl = Ctor->getParent();