Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:dtor

307     // If the record matches the base, this is the complete ctor/dtor
310 "doing no-op VTT offset in base dtor/ctor?");
1245 const CXXDestructorDecl *Dtor) {
1246 if (!Dtor->hasTrivialBody())
1250 const CXXRecordDecl *ClassDecl = Dtor->getParent();
1260 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CurGD.getDecl());
1268 EnterDtorCleanups(Dtor, Dtor_Deleting);
1269 EmitCXXDestructorCall(Dtor, Dtor_Complete, /*ForVirtualBase=*/false,
1275 Stmt *Body = Dtor->getBody();
1296 "can't emit a dtor without a body for non-Microsoft ABIs");
1299 EnterDtorCleanups(Dtor, Dtor_Complete);
1302 EmitCXXDestructorCall(Dtor, Dtor_Base, /*ForVirtualBase=*/false,
1315 EnterDtorCleanups(Dtor, Dtor_Base);
1318 if (!CanSkipVTablePointerInitialization(getContext(), Dtor))
1319 InitializeVTablePointers(Dtor->getParent());
1326 assert(Dtor->isImplicit() && "bodyless dtor not implicit");
1329 // -fapple-kext must inline any call to this dtor into
1365 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CGF.CurCodeDecl);
1366 const CXXRecordDecl *ClassDecl = Dtor->getParent();
1367 CGF.EmitDeleteCall(Dtor->getOperatorDelete(), CGF.LoadCXXThis(),
1381 llvm::BasicBlock *callDeleteBB = CGF.createBasicBlock("dtor.call_delete");
1382 llvm::BasicBlock *continueBB = CGF.createBasicBlock("dtor.continue");
1388 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CGF.CurCodeDecl);
1389 const CXXRecordDecl *ClassDecl = Dtor->getParent();
1390 CGF.EmitDeleteCall(Dtor->getOperatorDelete(), CGF.LoadCXXThis(),
1429 "Should not emit dtor epilogue for non-exported trivial dtor!");
1437 // If there is an implicit param to the deleting dtor, it's a boolean
1438 // telling whether we should call delete at the end of the dtor.
1637 const CXXDestructorDecl *dtor = record->getDestructor();
1638 assert(!dtor->isTrivial());
1639 CGF.EmitCXXDestructorCall(dtor, Dtor_Complete, /*for vbase*/ false,
1776 const CXXDestructorDecl *Dtor;
1782 : Dtor(D), Addr(Addr), Type(Type) {}
1785 CGF.EmitCXXDestructorCall(Dtor, Type, /*ForVirtualBase=*/false,
1830 const CXXDestructorDecl *Dtor;
1834 : Dtor(D), Addr(Addr) {}
1837 CGF.EmitCXXDestructorCall(Dtor, Dtor_Complete,