Lines Matching defs:Ctor
135 // TODO: if we're currently emitting a complete-object ctor/dtor,
478 // If the record matches the base, this is the complete ctor/dtor
481 "doing no-op VTT offset in base dtor/ctor?");
731 const CXXConstructorDecl *Ctor) {
745 if (Ctor->getParent()->getNumVBases()) {
765 if (Ctor->getType()->castAs<FunctionProtoType>()->isVariadic())
769 if (Ctor->isDelegatingConstructor())
775 // Emit code in ctor (Prologue==true) or dtor (Prologue==false)
842 const CXXConstructorDecl *Ctor = cast<CXXConstructorDecl>(CurGD.getDecl());
847 "can only generate complete ctor for this ABI");
851 if (CtorType == Ctor_Complete && IsConstructorDelegationValid(Ctor) &&
853 EmitDelegateCXXConstructorCall(Ctor, Ctor_Base, Args, Ctor->getEndLoc());
858 Stmt *Body = Ctor->getBody(Definition);
859 assert(Definition == Ctor && "emitting wrong constructor body");
872 // a complete ctor and then delegate to the base ctor.
876 EmitCtorPrologue(Ctor, CtorType, Args);
1291 // - This is a base ctor variant
1911 /// \param ctor the constructor to call for each element
1917 const CXXConstructorDecl *ctor, const ArrayType *arrayType,
1924 EmitCXXAggrConstructorCall(ctor, numElements, arrayBegin, E,
1931 /// \param ctor the constructor to call for each element
1934 /// \param arrayBase a T*, where T is the type constructed by ctor
1937 void CodeGenFunction::EmitCXXAggrConstructorCall(const CXXConstructorDecl *ctor,
1987 QualType type = getContext().getTypeDeclType(ctor->getParent());
2011 !ctor->getParent()->hasTrivialDestructor()) {
2022 EmitCXXConstructorCall(ctor, Ctor_Complete, /*ForVirtualBase=*/false,
2081 assert(E->getNumArgs() == 1 && "unexpected argcount for trivial ctor");
2105 Ctor,
2108 if (Ctor->isVariadic())
2113 for (auto *P : Ctor->parameters())
2119 CGF.CGM.getTypes().arrangeCXXConstructorCall(Args, Ctor, Type, 0, 0);
2144 assert(Args.size() == 1 && "trivial default ctor with args");
2152 assert(Args.size() == 2 && "unexpected argcount for trivial ctor");
2193 // FIXME: If vtable is used by ctor/dtor, or if vtable is external and we are
2253 const CXXConstructorDecl *Ctor, CXXCtorType CtorType, bool ForVirtualBase,
2255 GlobalDecl GD(Ctor, CtorType);
2268 CGM.getCXXABI().addImplicitConstructorArgs(*this, Ctor, CtorType,
2294 EmitCtorPrologue(Ctor, CtorType, Params);
2353 CodeGenFunction::EmitDelegateCXXConstructorCall(const CXXConstructorDecl *Ctor,
2383 EmitCXXConstructorCall(Ctor, CtorType, /*ForVirtualBase=*/false,
2410 CodeGenFunction::EmitDelegatingCXXConstructorCall(const CXXConstructorDecl *Ctor,
2412 assert(Ctor->isDelegatingConstructor());
2426 EmitAggExpr(Ctor->init_begin()[0]->getInit(), AggSlot);
2428 const CXXRecordDecl *ClassDecl = Ctor->getParent();