Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Ctor

305     // If the record matches the base, this is the complete ctor/dtor
308 "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 if (CtorType == Ctor_Complete && IsConstructorDelegationValid(Ctor) &&
705 DI->EmitLocation(Builder, Ctor->getLocEnd());
706 EmitDelegateCXXConstructorCall(Ctor, Ctor_Base, Args);
710 Stmt *Body = Ctor->getBody();
721 // a complete ctor and then delegate to the base ctor.
725 EmitCtorPrologue(Ctor, CtorType, Args);
1501 /// \param ctor the constructor to call for each element
1507 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1517 EmitCXXAggrConstructorCall(ctor, numElements, arrayBegin,
1524 /// \param ctor the constructor to call for each element
1527 /// \param arrayBegin a T*, where T is the type constructed by ctor
1531 CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1574 QualType type = getContext().getTypeDeclType(ctor->getParent());
1594 !ctor->getParent()->hasTrivialDestructor()) {
1599 EmitCXXConstructorCall(ctor, Ctor_Complete, /*ForVirtualBase=*/ false,
1643 "trivial 0-arg ctor not a default ctor");
1647 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1649 "trivial 1-arg ctor not a copy/move ctor");
1669 assert(ArgBeg + 1 == ArgEnd && "unexpected argcount for trivial ctor");
1671 "trivial 1-arg ctor not a copy/move ctor");
1717 CodeGenFunction::EmitDelegateCXXConstructorCall(const CXXConstructorDecl *Ctor,
1730 if (llvm::Value *VTT = GetVTTParameter(GlobalDecl(Ctor, CtorType),
1749 llvm::Value *Callee = CGM.GetAddrOfCXXConstructor(Ctor, CtorType);
1750 EmitCall(CGM.getTypes().arrangeCXXConstructorDeclaration(Ctor, CtorType),
1751 Callee, ReturnValueSlot(), DelegateArgs, Ctor);
1772 CodeGenFunction::EmitDelegatingCXXConstructorCall(const CXXConstructorDecl *Ctor,
1774 assert(Ctor->isDelegatingConstructor());
1778 QualType Ty = getContext().getTagDeclType(Ctor->getParent());
1786 EmitAggExpr(Ctor->init_begin()[0]->getInit(), AggSlot);
1788 const CXXRecordDecl *ClassDecl = Ctor->getParent();