Lines Matching defs:Ctor
304 // If the record matches the base, this is the complete ctor/dtor
307 "doing no-op VTT offset in base dtor/ctor?");
661 static bool IsConstructorDelegationValid(const CXXConstructorDecl *Ctor) {
675 if (Ctor->getParent()->getNumVBases()) {
695 if (Ctor->getType()->getAs<FunctionProtoType>()->isVariadic())
699 if (Ctor->isDelegatingConstructor())
707 const CXXConstructorDecl *Ctor = cast<CXXConstructorDecl>(CurGD.getDecl());
712 if (CtorType == Ctor_Complete && IsConstructorDelegationValid(Ctor) &&
715 DI->EmitLocation(Builder, Ctor->getLocEnd());
716 EmitDelegateCXXConstructorCall(Ctor, Ctor_Base, Args);
720 Stmt *Body = Ctor->getBody();
731 // a complete ctor and then delegate to the base ctor.
735 EmitCtorPrologue(Ctor, CtorType, Args);
1500 /// \param ctor the constructor to call for each element
1506 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1516 EmitCXXAggrConstructorCall(ctor, numElements, arrayBegin,
1523 /// \param ctor the constructor to call for each element
1526 /// \param arrayBegin a T*, where T is the type constructed by ctor
1530 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1573 QualType type = getContext().getTypeDeclType(ctor->getParent());
1593 !ctor->getParent()->hasTrivialDestructor()) {
1598 EmitCXXConstructorCall(ctor, Ctor_Complete, /*ForVirtualBase=*/ false,
1653 "trivial 0-arg ctor not a default ctor");
1657 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1659 "trivial 1-arg ctor not a copy/move ctor");
1679 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1681 "trivial 1-arg ctor not a copy/move ctor");
1727 CodeGenFunction::EmitDelegateCXXConstructorCall(const CXXConstructorDecl *Ctor,
1740 if (llvm::Value *VTT = GetVTTParameter(GlobalDecl(Ctor, CtorType),
1759 EmitCall(CGM.getTypes().arrangeCXXConstructorDeclaration(Ctor, CtorType),
1760 CGM.GetAddrOfCXXConstructor(Ctor, CtorType),
1761 ReturnValueSlot(), DelegateArgs, Ctor);
1782 CodeGenFunction::EmitDelegatingCXXConstructorCall(const CXXConstructorDecl *Ctor,
1784 assert(Ctor->isDelegatingConstructor());
1788 QualType Ty = getContext().getTagDeclType(Ctor->getParent());
1796 EmitAggExpr(Ctor->init_begin()[0]->getInit(), AggSlot);
1798 const CXXRecordDecl *ClassDecl = Ctor->getParent();