Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:ctor

307     // If the record matches the base, this is the complete ctor/dtor
310 "doing no-op VTT offset in base dtor/ctor?");
651 static bool IsConstructorDelegationValid(const CXXConstructorDecl *Ctor) {
665 if (Ctor->getParent()->getNumVBases()) {
685 if (Ctor->getType()->getAs<FunctionProtoType>()->isVariadic())
689 if (Ctor->isDelegatingConstructor())
697 const CXXConstructorDecl *Ctor = cast<CXXConstructorDecl>(CurGD.getDecl());
702 "can only generate complete ctor for this ABI");
706 if (CtorType == Ctor_Complete && IsConstructorDelegationValid(Ctor) &&
709 DI->EmitLocation(Builder, Ctor->getLocEnd());
710 EmitDelegateCXXConstructorCall(Ctor, Ctor_Base, Args, Ctor->getLocEnd());
714 Stmt *Body = Ctor->getBody();
728 // a complete ctor and then delegate to the base ctor.
732 EmitCtorPrologue(Ctor, CtorType, Args);
1513 /// \param ctor the constructor to call for each element
1519 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1529 EmitCXXAggrConstructorCall(ctor, numElements, arrayBegin,
1536 /// \param ctor the constructor to call for each element
1539 /// \param arrayBegin a T*, where T is the type constructed by ctor
1543 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1586 QualType type = getContext().getTypeDeclType(ctor->getParent());
1606 !ctor->getParent()->hasTrivialDestructor()) {
1611 EmitCXXConstructorCall(ctor, Ctor_Complete, /*ForVirtualBase=*/ false,
1655 "trivial 0-arg ctor not a default ctor");
1659 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1661 "trivial 1-arg ctor not a copy/move ctor");
1703 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1705 "trivial 1-arg ctor not a copy/move ctor");
1735 CodeGenFunction::EmitDelegateCXXConstructorCall(const CXXConstructorDecl *Ctor,
1749 if (llvm::Value *VTT = GetVTTParameter(GlobalDecl(Ctor, CtorType),
1769 llvm::Value *Callee = CGM.GetAddrOfCXXConstructor(Ctor, CtorType);
1770 EmitCall(CGM.getTypes().arrangeCXXConstructorDeclaration(Ctor, CtorType),
1771 Callee, ReturnValueSlot(), DelegateArgs, Ctor);
1792 CodeGenFunction::EmitDelegatingCXXConstructorCall(const CXXConstructorDecl *Ctor,
1794 assert(Ctor->isDelegatingConstructor());
1798 QualType Ty = getContext().getTagDeclType(Ctor->getParent());
1806 EmitAggExpr(Ctor->init_begin()[0]->getInit(), AggSlot);
1808 const CXXRecordDecl *ClassDecl = Ctor->getParent();