Lines Matching refs:Destructor

10350 bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) {  in CheckDestructor()  argument
10351 CXXRecordDecl *RD = Destructor->getParent(); in CheckDestructor()
10353 if (!Destructor->getOperatorDelete() && Destructor->isVirtual()) { in CheckDestructor()
10356 if (!Destructor->isImplicit()) in CheckDestructor()
10357 Loc = Destructor->getLocation(); in CheckDestructor()
10375 ContextRAII SwitchContext(*this, Destructor); in CheckDestructor()
10392 Destructor->setOperatorDelete(OperatorDelete, ThisArg); in CheckDestructor()
13322 CXXDestructorDecl *Destructor = in DeclareImplicitDestructor() local
13328 Destructor->setAccess(AS_public); in DeclareImplicitDestructor()
13329 Destructor->setDefaulted(); in DeclareImplicitDestructor()
13333 Destructor, in DeclareImplicitDestructor()
13338 setupImplicitSpecialMemberType(Destructor, Context.VoidTy, None); in DeclareImplicitDestructor()
13342 Destructor->setTrivial(ClassDecl->hasTrivialDestructor()); in DeclareImplicitDestructor()
13343 Destructor->setTrivialForCall(ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitDestructor()
13350 CheckImplicitSpecialMemberDeclaration(S, Destructor); in DeclareImplicitDestructor()
13356 ShouldDeleteSpecialMember(Destructor, CXXDestructor)) in DeclareImplicitDestructor()
13357 SetDeclDeleted(Destructor, ClassLoc); in DeclareImplicitDestructor()
13361 PushOnScopeChains(Destructor, S, false); in DeclareImplicitDestructor()
13362 ClassDecl->addDecl(Destructor); in DeclareImplicitDestructor()
13364 return Destructor; in DeclareImplicitDestructor()
13368 CXXDestructorDecl *Destructor) { in DefineImplicitDestructor() argument
13369 assert((Destructor->isDefaulted() && in DefineImplicitDestructor()
13370 !Destructor->doesThisDeclarationHaveABody() && in DefineImplicitDestructor()
13371 !Destructor->isDeleted()) && in DefineImplicitDestructor()
13373 if (Destructor->willHaveBody() || Destructor->isInvalidDecl()) in DefineImplicitDestructor()
13376 CXXRecordDecl *ClassDecl = Destructor->getParent(); in DefineImplicitDestructor()
13379 SynthesizedFunctionScope Scope(*this, Destructor); in DefineImplicitDestructor()
13384 Destructor->getType()->castAs<FunctionProtoType>()); in DefineImplicitDestructor()
13390 MarkBaseAndMemberDestructorsReferenced(Destructor->getLocation(), in DefineImplicitDestructor()
13391 Destructor->getParent()); in DefineImplicitDestructor()
13393 if (CheckDestructor(Destructor)) { in DefineImplicitDestructor()
13394 Destructor->setInvalidDecl(); in DefineImplicitDestructor()
13398 SourceLocation Loc = Destructor->getEndLoc().isValid() in DefineImplicitDestructor()
13399 ? Destructor->getEndLoc() in DefineImplicitDestructor()
13400 : Destructor->getLocation(); in DefineImplicitDestructor()
13401 Destructor->setBody(new (Context) CompoundStmt(Loc)); in DefineImplicitDestructor()
13402 Destructor->markUsed(Context); in DefineImplicitDestructor()
13405 L->CompletedImplicitDefinition(Destructor); in DefineImplicitDestructor()
13410 CXXDestructorDecl *Destructor) { in CheckCompleteDestructorVariant() argument
13411 if (Destructor->isInvalidDecl()) in CheckCompleteDestructorVariant()
13414 CXXRecordDecl *ClassDecl = Destructor->getParent(); in CheckCompleteDestructorVariant()
13420 SynthesizedFunctionScope Scope(*this, Destructor); in CheckCompleteDestructorVariant()
13425 MarkVirtualBaseDestructorsReferenced(Destructor->getLocation(), ClassDecl); in CheckCompleteDestructorVariant()
13472 void Sema::AdjustDestructorExceptionSpec(CXXDestructorDecl *Destructor) { in AdjustDestructorExceptionSpec() argument
13476 if (Destructor->isDependentContext()) in AdjustDestructorExceptionSpec()
13483 const auto *DtorType = Destructor->getType()->castAs<FunctionProtoType>(); in AdjustDestructorExceptionSpec()
13492 EPI.ExceptionSpec.SourceDecl = Destructor; in AdjustDestructorExceptionSpec()
13493 Destructor->setType(Context.getFunctionType(Context.VoidTy, None, EPI)); in AdjustDestructorExceptionSpec()
15220 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl); in FinalizeVarWithDestructor() local
15226 MarkFunctionReferenced(VD->getLocation(), Destructor); in FinalizeVarWithDestructor()
15227 CheckDestructorAccess(VD->getLocation(), Destructor, in FinalizeVarWithDestructor()
15230 DiagnoseUseOfDecl(Destructor, VD->getLocation()); in FinalizeVarWithDestructor()
15233 if (Destructor->isTrivial()) return; in FinalizeVarWithDestructor()
15237 if (Destructor->isConstexpr()) { in FinalizeVarWithDestructor()
17481 if (CXXDestructorDecl *Destructor = LookupDestructor(RD)) { in SetIvarInitializers() local
17482 MarkFunctionReferenced(Field->getLocation(), Destructor); in SetIvarInitializers()
17483 CheckDestructorAccess(Field->getLocation(), Destructor, in SetIvarInitializers()