Lines Matching refs:Destructor

10638 bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) {  in CheckDestructor()  argument
10639 CXXRecordDecl *RD = Destructor->getParent(); in CheckDestructor()
10641 if (!Destructor->getOperatorDelete() && Destructor->isVirtual()) { in CheckDestructor()
10644 if (!Destructor->isImplicit()) in CheckDestructor()
10645 Loc = Destructor->getLocation(); in CheckDestructor()
10663 ContextRAII SwitchContext(*this, Destructor); in CheckDestructor()
10680 Destructor->setOperatorDelete(OperatorDelete, ThisArg); in CheckDestructor()
13825 CXXDestructorDecl *Destructor = CXXDestructorDecl::Create( in DeclareImplicitDestructor() local
13832 Destructor->setAccess(AS_public); in DeclareImplicitDestructor()
13833 Destructor->setDefaulted(); in DeclareImplicitDestructor()
13835 setupImplicitSpecialMemberType(Destructor, Context.VoidTy, std::nullopt); in DeclareImplicitDestructor()
13839 Destructor, in DeclareImplicitDestructor()
13845 Destructor->setTrivial(ClassDecl->hasTrivialDestructor()); in DeclareImplicitDestructor()
13846 Destructor->setTrivialForCall(ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitDestructor()
13853 CheckImplicitSpecialMemberDeclaration(S, Destructor); in DeclareImplicitDestructor()
13859 ShouldDeleteSpecialMember(Destructor, CXXDestructor)) in DeclareImplicitDestructor()
13860 SetDeclDeleted(Destructor, ClassLoc); in DeclareImplicitDestructor()
13864 PushOnScopeChains(Destructor, S, false); in DeclareImplicitDestructor()
13865 ClassDecl->addDecl(Destructor); in DeclareImplicitDestructor()
13867 return Destructor; in DeclareImplicitDestructor()
13871 CXXDestructorDecl *Destructor) { in DefineImplicitDestructor() argument
13872 assert((Destructor->isDefaulted() && in DefineImplicitDestructor()
13873 !Destructor->doesThisDeclarationHaveABody() && in DefineImplicitDestructor()
13874 !Destructor->isDeleted()) && in DefineImplicitDestructor()
13876 if (Destructor->willHaveBody() || Destructor->isInvalidDecl()) in DefineImplicitDestructor()
13879 CXXRecordDecl *ClassDecl = Destructor->getParent(); in DefineImplicitDestructor()
13882 SynthesizedFunctionScope Scope(*this, Destructor); in DefineImplicitDestructor()
13887 Destructor->getType()->castAs<FunctionProtoType>()); in DefineImplicitDestructor()
13893 MarkBaseAndMemberDestructorsReferenced(Destructor->getLocation(), in DefineImplicitDestructor()
13894 Destructor->getParent()); in DefineImplicitDestructor()
13896 if (CheckDestructor(Destructor)) { in DefineImplicitDestructor()
13897 Destructor->setInvalidDecl(); in DefineImplicitDestructor()
13901 SourceLocation Loc = Destructor->getEndLoc().isValid() in DefineImplicitDestructor()
13902 ? Destructor->getEndLoc() in DefineImplicitDestructor()
13903 : Destructor->getLocation(); in DefineImplicitDestructor()
13904 Destructor->setBody(new (Context) CompoundStmt(Loc)); in DefineImplicitDestructor()
13905 Destructor->markUsed(Context); in DefineImplicitDestructor()
13908 L->CompletedImplicitDefinition(Destructor); in DefineImplicitDestructor()
13913 CXXDestructorDecl *Destructor) { in CheckCompleteDestructorVariant() argument
13914 if (Destructor->isInvalidDecl()) in CheckCompleteDestructorVariant()
13917 CXXRecordDecl *ClassDecl = Destructor->getParent(); in CheckCompleteDestructorVariant()
13923 SynthesizedFunctionScope Scope(*this, Destructor); in CheckCompleteDestructorVariant()
13928 MarkVirtualBaseDestructorsReferenced(Destructor->getLocation(), ClassDecl); in CheckCompleteDestructorVariant()
13975 void Sema::AdjustDestructorExceptionSpec(CXXDestructorDecl *Destructor) { in AdjustDestructorExceptionSpec() argument
13979 if (Destructor->isDependentContext()) in AdjustDestructorExceptionSpec()
13986 const auto *DtorType = Destructor->getType()->castAs<FunctionProtoType>(); in AdjustDestructorExceptionSpec()
13995 EPI.ExceptionSpec.SourceDecl = Destructor; in AdjustDestructorExceptionSpec()
13996 Destructor->setType( in AdjustDestructorExceptionSpec()
15686 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl); in FinalizeVarWithDestructor() local
15692 MarkFunctionReferenced(VD->getLocation(), Destructor); in FinalizeVarWithDestructor()
15693 CheckDestructorAccess(VD->getLocation(), Destructor, in FinalizeVarWithDestructor()
15696 DiagnoseUseOfDecl(Destructor, VD->getLocation()); in FinalizeVarWithDestructor()
15699 if (Destructor->isTrivial()) return; in FinalizeVarWithDestructor()
15703 if (Destructor->isConstexpr()) { in FinalizeVarWithDestructor()
18164 if (CXXDestructorDecl *Destructor = LookupDestructor(RD)) { in SetIvarInitializers() local
18165 MarkFunctionReferenced(Field->getLocation(), Destructor); in SetIvarInitializers()
18166 CheckDestructorAccess(Field->getLocation(), Destructor, in SetIvarInitializers()