Lines Matching refs:Destructor

6720 bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) {
6721 CXXRecordDecl *RD = Destructor->getParent();
6723 if (!Destructor->getOperatorDelete() && Destructor->isVirtual()) {
6726 if (!Destructor->isImplicit())
6727 Loc = Destructor->getLocation();
6744 Destructor->setOperatorDelete(OperatorDelete);
9344 CXXDestructorDecl *Destructor
9348 Destructor->setAccess(AS_public);
9349 Destructor->setDefaulted();
9353 Destructor,
9359 FunctionProtoType::ExtProtoInfo EPI = getImplicitMethodEPI(*this, Destructor);
9360 Destructor->setType(Context.getFunctionType(Context.VoidTy, None, EPI));
9362 AddOverriddenMethods(ClassDecl, Destructor);
9366 Destructor->setTrivial(ClassDecl->hasTrivialDestructor());
9368 if (ShouldDeleteSpecialMember(Destructor, CXXDestructor))
9369 SetDeclDeleted(Destructor, ClassLoc);
9376 PushOnScopeChains(Destructor, S, false);
9377 ClassDecl->addDecl(Destructor);
9379 return Destructor;
9383 CXXDestructorDecl *Destructor) {
9384 assert((Destructor->isDefaulted() &&
9385 !Destructor->doesThisDeclarationHaveABody() &&
9386 !Destructor->isDeleted()) &&
9388 CXXRecordDecl *ClassDecl = Destructor->getParent();
9391 if (Destructor->isInvalidDecl())
9394 SynthesizedFunctionScope Scope(*this, Destructor);
9397 MarkBaseAndMemberDestructorsReferenced(Destructor->getLocation(),
9398 Destructor->getParent());
9400 if (CheckDestructor(Destructor) || Trap.hasErrorOccurred()) {
9404 Destructor->setInvalidDecl();
9411 Destructor->getType()->castAs<FunctionProtoType>());
9413 SourceLocation Loc = Destructor->getLocEnd().isValid()
9414 ? Destructor->getLocEnd()
9415 : Destructor->getLocation();
9416 Destructor->setBody(new (Context) CompoundStmt(Loc));
9417 Destructor->markUsed(Context);
9421 L->CompletedImplicitDefinition(Destructor);
9477 CXXDestructorDecl *Destructor) {
9485 const FunctionProtoType *DtorType = Destructor->getType()->
9495 EPI.ExceptionSpec.SourceDecl = Destructor;
9496 Destructor->setType(Context.getFunctionType(Context.VoidTy, None, EPI));
11370 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl);
11371 MarkFunctionReferenced(VD->getLocation(), Destructor);
11372 CheckDestructorAccess(VD->getLocation(), Destructor,
11376 DiagnoseUseOfDecl(Destructor, VD->getLocation());
11378 if (Destructor->isTrivial()) return;
13339 if (CXXDestructorDecl *Destructor = LookupDestructor(RD)) {
13340 MarkFunctionReferenced(Field->getLocation(), Destructor);
13341 CheckDestructorAccess(Field->getLocation(), Destructor,