|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
gen/tools/clang/include/clang/AST/DeclNodes.inc 421 CXXDESTRUCTOR(CXXDestructor, CXXMethodDecl)
tools/clang/include/clang/AST/ASTMutationListener.h 20 class CXXDestructorDecl;
tools/clang/include/clang/AST/DeclCXX.h 63 class CXXDestructorDecl;
tools/clang/include/clang/AST/Mangle.h 30 class CXXDestructorDecl;
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h 47 class CXXDestructorDecl;
tools/clang/include/clang/Analysis/CFG.h 46 class CXXDestructorDecl;
tools/clang/include/clang/Sema/Sema.h 90 class CXXDestructorDecl;
tools/clang/lib/CodeGen/CGCXXABI.h 30 class CXXDestructorDecl;
tools/clang/lib/CodeGen/CodeGenFunction.h 56 class CXXDestructorDecl;
tools/clang/lib/CodeGen/CodeGenModule.h 77 class CXXDestructorDecl;
tools/clang/lib/CodeGen/CodeGenTypes.h 34 class CXXDestructorDecl;
References
include/llvm/ADT/STLExtras.h 75 typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h 58 return To::classof(&Val);
66 static inline bool doit(const From &) { return true; }
104 static inline bool doit(const From *Val) {
106 return isa_impl<To, From>::doit(*Val);
106 return isa_impl<To, From>::doit(*Val);
122 return isa_impl_wrap<To, SimpleFrom,
132 return isa_impl_cl<To,FromTy>::doit(Val);
142 return isa_impl_wrap<X, const Y,
172 using ret_type = To *; // Pointer arg case, return Ty*
176 using ret_type = const To *; // Constant pointer arg case, return const Ty*
198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
210 To, From, typename simplify_type<From>::SimpleType>::ret_type;
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(Val);
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
309 return cast<X>(Val);
337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
tools/clang/include/clang/AST/ASTMutationListener.h 83 virtual void ResolvedOperatorDelete(const CXXDestructorDecl *DD,
tools/clang/include/clang/AST/ASTTypeTraits.h 65 return ASTNodeKind(KindToKindId<T>::Id);
65 return ASTNodeKind(KindToKindId<T>::Id);
65 return ASTNodeKind(KindToKindId<T>::Id);
251 const T *get() const {
252 return BaseConverter<T>::get(NodeKind, Storage.buffer);
259 const T &getUnchecked() const {
260 return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
394 static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
395 if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
399 static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
401 return *cast<T>(static_cast<const BaseT *>(
469 : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/DeclBase.h 2474 static const ToTy *doit(const DeclContext *Val) {
2478 static ToTy *doit(DeclContext *Val) {
2491 return To::classofKind(Val.getDeclKind());
2514 static const ToTy *doit(const ::clang::DeclContext *Val) {
2515 return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
2536 static ::clang::DeclContext *doit(const FromTy *Val) {
2537 return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclCXX.h 1433 CXXDestructorDecl *getDestructor() const;
2650 static CXXDestructorDecl *Create(ASTContext &C, CXXRecordDecl *RD,
2656 static CXXDestructorDecl *CreateDeserialized(ASTContext & C, unsigned ID);
2668 CXXDestructorDecl *getCanonicalDecl() override {
2669 return cast<CXXDestructorDecl>(FunctionDecl::getCanonicalDecl());
2671 const CXXDestructorDecl *getCanonicalDecl() const {
tools/clang/include/clang/AST/ExprCXX.h 1343 const CXXDestructorDecl *Destructor;
1345 explicit CXXTemporary(const CXXDestructorDecl *destructor)
1350 const CXXDestructorDecl *Destructor);
1352 const CXXDestructorDecl *getDestructor() const { return Destructor; }
1354 void setDestructor(const CXXDestructorDecl *Dtor) {
tools/clang/include/clang/AST/GlobalDecl.h 64 GlobalDecl(const CXXDestructorDecl *D, CXXDtorType Type) : Value(D, Type) {}
tools/clang/include/clang/AST/Mangle.h 104 virtual void mangleCXXDtorThunk(const CXXDestructorDecl *DD, CXXDtorType Type,
114 virtual void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type,
123 void mangleDtorBlock(const CXXDestructorDecl *CD, CXXDtorType DT,
170 virtual void mangleCXXDtorComdat(const CXXDestructorDecl *D,
tools/clang/include/clang/AST/RecursiveASTVisitor.h 2088 ReturnValue = TraverseFunctionHelper(D);
tools/clang/include/clang/AST/VTableBuilder.h 78 static VTableComponent MakeCompleteDtor(const CXXDestructorDecl *DD) {
83 static VTableComponent MakeDeletingDtor(const CXXDestructorDecl *DD) {
130 const CXXDestructorDecl *getDestructorDecl() const {
156 auto *DtorDecl = dyn_cast<CXXDestructorDecl>(getFunctionDecl());
559 if (isa<CXXDestructorDecl>(GD.getDecl()) &&
tools/clang/include/clang/ASTMatchers/ASTMatchers.h 110 const T *getNodeAs(StringRef ID) const {
111 return MyBoundNodes.getNodeAs<T>(ID);
1090 extern const internal::VariadicDynCastAllOfMatcher<Decl, CXXDestructorDecl>
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h 160 const T *getNodeAs(StringRef ID) const {
165 return It->second.get<T>();
302 virtual bool matches(const T &Node,
309 return matches(DynNode.getUnchecked<T>(), Finder, Builder);
345 DynTypedMatcher(MatcherInterface<T> *Implementation)
346 : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
436 return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
445 template <typename T> Matcher<T> convertTo() const {
447 return unconditionalConvertTo<T>();
499 explicit Matcher(MatcherInterface<T> *Implementation)
507 typename std::enable_if<std::is_base_of<From, T>::value &&
508 !std::is_same<From, T>::value>::type * = nullptr)
520 std::is_same<T, QualType>::value &&
529 static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
534 bool matches(const T &Node,
581 return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
1084 std::is_base_of<typename AnyTypeList::head, T>::value ||
1085 TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
1184 operator Matcher<T>() const {
1185 static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
1243 operator Matcher<T>() const {
1245 ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
1246 .template unconditionalConvertTo<T>();
1255 class BindableMatcher : public Matcher<T> {
1257 explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
1258 explicit BindableMatcher(MatcherInterface<T> *Implementation)
1265 Matcher<T> bind(StringRef ID) const {
1335 template <typename T> operator Matcher<T>() const {
1337 Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
1338 getMatchers<T>(std::index_sequence_for<Ps...>()))
1339 .template unconditionalConvertTo<T>();
1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
1376 BindableMatcher<T> makeAllOfComposite(
1377 ArrayRef<const Matcher<T> *> InnerMatchers) {
1388 using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
1395 ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
1397 .template unconditionalConvertTo<T>());
1408 ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
1557 : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
1558 makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h 199 ast_matchers::internal::Matcher<T> getTypedMatcher() const {
202 ->template convertTo<T>();
227 : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
228 typedef ast_matchers::internal::Matcher<T> MatcherT;
232 return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h 123 void handleDestructorCall(const VarDecl *VD, const CXXDestructorDecl *DD) {}
212 auto *DD = const_cast<CXXDestructorDecl *>(
457 void handleDestructorCall(const VarDecl *VD, const CXXDestructorDecl *DD);
tools/clang/include/clang/Analysis/AnyCall.h 87 AnyCall(const CXXDestructorDecl *D) : E(nullptr), D(D), K(Destructor) {}
96 } else if (isa <CXXDestructorDecl>(D)) {
tools/clang/include/clang/Analysis/CFG.h 374 const CXXDestructorDecl *getDestructorDecl(ASTContext &astContext) const;
tools/clang/include/clang/Sema/Sema.h 3573 CXXDestructorDecl *LookupDestructor(CXXRecordDecl *Class);
5323 CXXDestructorDecl *DeclareImplicitDestructor(CXXRecordDecl *ClassDecl);
5328 CXXDestructorDecl *Destructor);
5334 void AdjustDestructorExceptionSpec(CXXDestructorDecl *Destructor);
5684 void CheckVirtualDtorCall(CXXDestructorDecl *dtor, SourceLocation Loc,
6419 bool CheckDestructor(CXXDestructorDecl *Destructor);
6545 CXXDestructorDecl *Dtor,
11029 bool isEmptyCudaDestructor(SourceLocation Loc, CXXDestructorDecl *CD);
tools/clang/include/clang/Serialization/ASTReader.h 1887 T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
1888 return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
tools/clang/include/clang/Serialization/ASTWriter.h 726 void ResolvedOperatorDelete(const CXXDestructorDecl *DD,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h 781 CXXDestructorCall(const CXXDestructorDecl *DD, const Stmt *Trigger,
1229 getCXXDestructorCall(const CXXDestructorDecl *DD, const Stmt *Trigger,
tools/clang/lib/AST/ASTImporter.cpp 162 Expected<T *> import(T *From) {
162 Expected<T *> import(T *From) {
166 return cast_or_null<T>(*ToOrErr);
170 Expected<T *> import(const T *From) {
170 Expected<T *> import(const T *From) {
217 -> decltype(ToDeclT::Create(std::forward<Args>(args)...)) {
218 return ToDeclT::Create(std::forward<Args>(args)...);
229 LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
247 CallOverloadedCreateFun<NewDeclT> OC;
467 ExpectedDecl VisitCXXDestructorDecl(CXXDestructorDecl *D);
3173 } else if (CXXDestructorDecl *FromDtor = dyn_cast<CXXDestructorDecl>(D)) {
3173 } else if (CXXDestructorDecl *FromDtor = dyn_cast<CXXDestructorDecl>(D)) {
3186 if (GetImportedOrCreateDecl<CXXDestructorDecl>(
3192 CXXDestructorDecl *ToDtor = cast<CXXDestructorDecl>(ToFunction);
3192 CXXDestructorDecl *ToDtor = cast<CXXDestructorDecl>(ToFunction);
3352 ExpectedDecl ASTNodeImporter::VisitCXXDestructorDecl(CXXDestructorDecl *D) {
tools/clang/lib/AST/DeclCXX.cpp 538 auto *Dtor = getDestructor();
798 if (const auto *DD = dyn_cast<CXXDestructorDecl>(D)) {
798 if (const auto *DD = dyn_cast<CXXDestructorDecl>(D)) {
1345 } else if (isa<CXXDestructorDecl>(D)) {
1370 } else if (isa<CXXDestructorDecl>(D))
1765 CXXDestructorDecl *CXXRecordDecl::getDestructor() const {
1775 return R.empty() ? nullptr : dyn_cast<CXXDestructorDecl>(R.front());
1780 if (const CXXDestructorDecl *Destructor = getDestructor())
1996 if (isa<CXXDestructorDecl>(this)) {
2105 if (const auto *dtor = BestDynamicDecl->getDestructor()) {
2599 CXXDestructorDecl *
2602 CXXDestructorDecl(C, nullptr, SourceLocation(), DeclarationNameInfo(),
2606 CXXDestructorDecl *CXXDestructorDecl::Create(
2614 CXXDestructorDecl(C, RD, StartLoc, NameInfo, T, TInfo, isInline,
2619 auto *First = cast<CXXDestructorDecl>(getFirstDecl());
2619 auto *First = cast<CXXDestructorDecl>(getFirstDecl());
tools/clang/lib/AST/DeclPrinter.cpp 727 } else if (!ConversionDecl && !isa<CXXDestructorDecl>(D)) {
tools/clang/lib/AST/Expr.cpp 683 else if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(ND))
683 else if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(ND))
851 else if (!isa<CXXConstructorDecl>(FD) && !isa<CXXDestructorDecl>(FD))
tools/clang/lib/AST/ExprCXX.cpp 1006 const CXXDestructorDecl *Destructor) {
tools/clang/lib/AST/ExprConstant.cpp 5006 isa<CXXDestructorDecl>(NamedMember) ? AK_Destroy : AK_MemberCall, false);
5085 isa<CXXDestructorDecl>(Found) ? AK_Destroy : AK_MemberCall);
5808 const CXXDestructorDecl *DD = RD->getDestructor();
6024 if (CXXDestructorDecl *DD = RD->getDestructor())
6031 if (CXXDestructorDecl *DD = RD->getDestructor())
6982 if (auto *DD = dyn_cast<CXXDestructorDecl>(FD)) {
tools/clang/lib/AST/ItaniumMangle.cpp 140 void mangleCXXDtorThunk(const CXXDestructorDecl *DD, CXXDtorType Type,
154 void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type,
158 void mangleCXXDtorComdat(const CXXDestructorDecl *D, raw_ostream &) override;
398 const CXXDestructorDecl *D, CXXDtorType Type)
750 if (!(isa<CXXConstructorDecl>(FD) || isa<CXXDestructorDecl>(FD) ||
4956 void ItaniumMangleContextImpl::mangleCXXDtor(const CXXDestructorDecl *D,
4969 void ItaniumMangleContextImpl::mangleCXXDtorComdat(const CXXDestructorDecl *D,
5005 const CXXDestructorDecl *DD, CXXDtorType Type,
tools/clang/lib/AST/JSONNodeDumper.cpp 1339 if (const CXXDestructorDecl *Dtor = Temp->getDestructor())
tools/clang/lib/AST/Mangle.cpp 222 void MangleContext::mangleDtorBlock(const CXXDestructorDecl *DD,
249 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(DC))
249 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(DC))
404 } else if (const auto *DD = dyn_cast_or_null<CXXDestructorDecl>(ND)) {
404 } else if (const auto *DD = dyn_cast_or_null<CXXDestructorDecl>(ND)) {
427 else if (const auto *DtorD = dyn_cast<CXXDestructorDecl>(D))
427 else if (const auto *DtorD = dyn_cast<CXXDestructorDecl>(D))
452 else if (const auto *DD = dyn_cast_or_null<CXXDestructorDecl>(ND))
452 else if (const auto *DD = dyn_cast_or_null<CXXDestructorDecl>(ND))
tools/clang/lib/AST/MicrosoftMangle.cpp 144 void mangleCXXDtorThunk(const CXXDestructorDecl *DD, CXXDtorType Type,
182 void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type,
303 const CXXDestructorDecl *D, CXXDtorType Type)
2188 if (isa<CXXDestructorDecl>(MD)) {
2215 if (isa<CXXDestructorDecl>(D) && isStructorDecl(D)) {
2342 if (isa<CXXDestructorDecl>(MD) && isStructorDecl(MD) &&
3082 const CXXDestructorDecl *DD, CXXDtorType Type,
3325 void MicrosoftMangleContextImpl::mangleCXXDtor(const CXXDestructorDecl *D,
tools/clang/lib/AST/RecordLayoutBuilder.cpp 2996 if (MD->isVirtual() && !isa<CXXDestructorDecl>(MD) && !MD->isPure())
tools/clang/lib/AST/VTableBuilder.cpp 493 if (isa<CXXDestructorDecl>(LHS))
494 return isa<CXXDestructorDecl>(RHS);
1138 if (isa<CXXDestructorDecl>(MD)) {
1297 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1297 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1477 const CXXDestructorDecl *ImplicitVirtualDtor = nullptr;
1545 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1545 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1671 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1671 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1984 const CXXDestructorDecl *DD = Component.getDestructorDecl();
2166 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
2166 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
2474 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
2474 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
2512 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
2512 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
2693 if (isa<CXXDestructorDecl>(Overrider.Method)) {
3142 const CXXDestructorDecl *DD = Component.getDestructorDecl();
3617 if (isa<CXXDestructorDecl>(MD)) {
3734 if (isa<CXXDestructorDecl>(GD.getDecl()))
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp 598 const internal::VariadicDynCastAllOfMatcher<Decl, CXXDestructorDecl>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h 75 return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
78 static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
79 return Value.getMatcher().getTypedMatcher<T>();
83 return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
466 ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
469 DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
778 ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/Analysis/CFG.cpp 758 void addImplicitDtorsForDestructor(const CXXDestructorDecl *DD);
1495 if (const CXXDestructorDecl *DD = dyn_cast_or_null<CXXDestructorDecl>(D))
1495 if (const CXXDestructorDecl *DD = dyn_cast_or_null<CXXDestructorDecl>(D))
1879 void CFGBuilder::addImplicitDtorsForDestructor(const CXXDestructorDecl *DD) {
4770 const CXXDestructorDecl *Dtor = E->getTemporary()->getDestructor();
4948 const CXXDestructorDecl *
tools/clang/lib/Analysis/PathDiagnostic.cpp 948 } else if (isa<CXXDestructorDecl>(MD)) {
tools/clang/lib/Analysis/ThreadSafety.cpp 1921 bool Dtor = isa<CXXDestructorDecl>(D);
2277 if (isa<CXXDestructorDecl>(D))
2473 const auto *DD = AD.getDestructorDecl(AC.getASTContext());
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp 122 } else if (D && isa<CXXDestructorDecl>(D)) {
890 const CXXDestructorDecl *DD) {
tools/clang/lib/CodeGen/Address.h 108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGBlocks.cpp 1803 if (const CXXDestructorDecl *DD = RD->getDestructor())
tools/clang/lib/CodeGen/CGCXX.cpp 33 bool CodeGenModule::TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D) {
106 const CXXDestructorDecl *BaseD = UniqueBase->getDestructor();
225 if (isa<CXXDestructorDecl>(MD)) {
287 if (const auto *DD = dyn_cast<CXXDestructorDecl>(MD))
287 if (const auto *DD = dyn_cast<CXXDestructorDecl>(MD))
297 const CXXDestructorDecl *DD,
tools/clang/lib/CodeGen/CGCXXABI.cpp 284 const CXXDestructorDecl *Dtor,
291 GVALinkage Linkage, const CXXDestructorDecl *Dtor, CXXDtorType DT) const {
tools/clang/lib/CodeGen/CGCXXABI.h 230 const CXXDestructorDecl *Dtor) = 0;
314 virtual bool useThunkForDtorVariant(const CXXDestructorDecl *Dtor,
318 const CXXDestructorDecl *Dtor,
322 getCXXDestructorLinkage(GVALinkage Linkage, const CXXDestructorDecl *Dtor,
326 virtual void EmitCXXDestructors(const CXXDestructorDecl *D) = 0;
379 const CXXDestructorDecl *DD, CXXDtorType Type,
429 const CXXDestructorDecl *Dtor,
tools/clang/lib/CodeGen/CGCall.cpp 517 isa<CXXDestructorDecl>(GD.getDecl()))
3505 const CXXDestructorDecl *Dtor = Ty->getAsCXXRecordDecl()->getDestructor();
tools/clang/lib/CodeGen/CGClass.cpp 496 const CXXDestructorDecl *D = BaseClass->getDestructor();
762 : cast<CXXDestructorDecl>(CurGD.getDecl())->getParent();
1403 const CXXDestructorDecl *Dtor) {
1421 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CurGD.getDecl());
1421 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CurGD.getDecl());
1551 const CXXDestructorDecl *DD) {
1562 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CGF.CurCodeDecl);
1562 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CGF.CurCodeDecl);
1580 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CGF.CurCodeDecl);
1580 const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(CGF.CurCodeDecl);
1653 const CXXDestructorDecl *Dtor;
1656 SanitizeDtorMembers(const CXXDestructorDecl *Dtor) : Dtor(Dtor) {}
1741 const CXXDestructorDecl *Dtor;
1744 SanitizeDtorVTable(const CXXDestructorDecl *Dtor) : Dtor(Dtor) {}
1769 void CodeGenFunction::EnterDtorCleanups(const CXXDestructorDecl *DD,
2022 const CXXDestructorDecl *dtor = record->getDestructor();
2366 const CXXDestructorDecl *Dtor;
2370 CallDelegatingCtorDtor(const CXXDestructorDecl *D, Address Addr,
2414 void CodeGenFunction::EmitCXXDestructorCall(const CXXDestructorDecl *DD,
2425 const CXXDestructorDecl *Dtor;
2429 CallLocalDtor(const CXXDestructorDecl *D, Address Addr, QualType Ty)
2440 void CodeGenFunction::PushDestructorCleanup(const CXXDestructorDecl *D,
2450 const CXXDestructorDecl *D = ClassDecl->getDestructor();
2628 if (isa<CXXDestructorDecl>(MD) && MD->isImplicit())
tools/clang/lib/CodeGen/CGDebugInfo.cpp 1541 isa<CXXConstructorDecl>(Method) || isa<CXXDestructorDecl>(Method);
1581 if (!isa<CXXDestructorDecl>(Method))
1586 const auto *DD = dyn_cast<CXXDestructorDecl>(Method);
1586 const auto *DD = dyn_cast<CXXDestructorDecl>(Method);
tools/clang/lib/CodeGen/CGDecl.cpp 290 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(DC))
290 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(DC))
510 const CXXDestructorDecl *Dtor, llvm::Value *NRVOFlag)
514 const CXXDestructorDecl *Dtor;
1084 if (const auto *CD = dyn_cast<CXXDestructorDecl>(FD))
1084 if (const auto *CD = dyn_cast<CXXDestructorDecl>(FD))
1935 CXXDestructorDecl *dtor = type->getAsCXXRecordDecl()->getDestructor();
tools/clang/lib/CodeGen/CGDeclCXX.cpp 116 CXXDestructorDecl *Dtor = Record->getDestructor();
tools/clang/lib/CodeGen/CGException.cpp 1168 doImplicitRethrow = isa<CXXDestructorDecl>(CurCodeDecl) ||
tools/clang/lib/CodeGen/CGExpr.cpp 318 CXXDestructorDecl *ReferenceTemporaryDtor = nullptr;
tools/clang/lib/CodeGen/CGExprCXX.cpp 285 if (isa<CXXDestructorDecl>(MD)) return RValue::get(nullptr);
306 if (const auto *Dtor = dyn_cast<CXXDestructorDecl>(CalleeDecl))
306 if (const auto *Dtor = dyn_cast<CXXDestructorDecl>(CalleeDecl))
343 if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(CalleeDecl)) {
343 if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(CalleeDecl)) {
1848 auto *Dtor = ElementType->getAsCXXRecordDecl()->getDestructor();
1875 const CXXDestructorDecl *Dtor = nullptr;
1885 dyn_cast_or_null<const CXXDestructorDecl>(
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp 9624 if (const CXXDestructorDecl *Dtor = RD->getDestructor()) {
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp 4166 else if (const auto *D = dyn_cast<CXXDestructorDecl>(CGF.CurFuncDecl))
4166 else if (const auto *D = dyn_cast<CXXDestructorDecl>(CGF.CurFuncDecl))
tools/clang/lib/CodeGen/CGVTables.cpp 263 if (isa<CXXDestructorDecl>(MD))
328 if (isa<CXXDestructorDecl>(MD))
498 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD))
498 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD))
605 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base)
tools/clang/lib/CodeGen/CodeGenFunction.cpp 1122 if (MD && (isa<CXXConstructorDecl>(MD) || isa<CXXDestructorDecl>(MD)))
1187 if (isa<CXXDestructorDecl>(FD))
tools/clang/lib/CodeGen/CodeGenFunction.h 678 void PushDestructorCleanup(const CXXDestructorDecl *Dtor, QualType T,
1976 void EnterDtorCleanups(const CXXDestructorDecl *Dtor, CXXDtorType Type);
2557 void EmitCXXDestructorCall(const CXXDestructorDecl *D, CXXDtorType Type,
3647 CGCallee BuildAppleKextVirtualDestructorCall(const CXXDestructorDecl *DD,
tools/clang/lib/CodeGen/CodeGenModule.cpp 862 if (const auto *Dtor = dyn_cast_or_null<CXXDestructorDecl>(D)) {
862 if (const auto *Dtor = dyn_cast_or_null<CXXDestructorDecl>(D)) {
995 else if (const auto *D = dyn_cast<CXXDestructorDecl>(ND))
995 else if (const auto *D = dyn_cast<CXXDestructorDecl>(ND))
1117 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(D))
1117 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(D))
1194 if (const auto *Dtor = dyn_cast<CXXDestructorDecl>(D))
1194 if (const auto *Dtor = dyn_cast<CXXDestructorDecl>(D))
1462 !isa<CXXDestructorDecl>(MD);
1850 if (isa<CXXConstructorDecl>(FD) || isa<CXXDestructorDecl>(FD))
2630 if (const auto *D = E->getTemporary()->getDestructor())
2707 if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(F)) {
2707 if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(F)) {
2813 if (isa<CXXConstructorDecl>(Method) || isa<CXXDestructorDecl>(Method))
3096 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(FDDef))
3096 else if (const auto *DD = dyn_cast<CXXDestructorDecl>(FDDef))
3215 if (D && isa<CXXDestructorDecl>(D) &&
3216 getCXXABI().useThunkForDtorVariant(cast<CXXDestructorDecl>(D),
3283 if (const auto *DD = dyn_cast<CXXDestructorDecl>(GD.getDecl())) {
3283 if (const auto *DD = dyn_cast<CXXDestructorDecl>(GD.getDecl())) {
3595 if (isa<CXXConstructorDecl>(D) || isa<CXXDestructorDecl>(D))
5305 getCXXABI().EmitCXXDestructors(cast<CXXDestructorDecl>(D));
5541 GlobalDecl GD(cast<CXXDestructorDecl>(D), Dtor_Base);
tools/clang/lib/CodeGen/CodeGenModule.h 1254 bool TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D);
tools/clang/lib/CodeGen/CodeGenPGO.cpp 779 if (isa<CXXDestructorDecl>(D) && GD.getDtorType() != Dtor_Base)
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp 79 if (isa<CXXDestructorDecl>(GD.getDecl())) {
159 const CXXDestructorDecl *Dtor) override;
209 bool useThunkForDtorVariant(const CXXDestructorDecl *Dtor,
217 void EmitCXXDestructors(const CXXDestructorDecl *D) override;
229 void EmitDestructorCall(CodeGenFunction &CGF, const CXXDestructorDecl *DD,
268 const CXXDestructorDecl *Dtor,
463 isa<CXXDestructorDecl>(GD.getDecl()) &&
500 (isa<CXXDestructorDecl>(GD.getDecl()) &&
1173 const CXXDestructorDecl *Dtor) {
1268 CXXDestructorDecl *DtorD = Record->getDestructor();
1536 void ItaniumCXXABI::EmitCXXDestructors(const CXXDestructorDecl *D) {
1614 const CXXDestructorDecl *DD,
1817 CodeGenFunction &CGF, const CXXDestructorDecl *Dtor, CXXDtorType DtorType,
1975 if (!isa<CXXDestructorDecl>(CGF.CurGD.getDecl()))
2749 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base)
3895 if (const auto *DD = dyn_cast<CXXDestructorDecl>(MD)) {
3895 if (const auto *DD = dyn_cast<CXXDestructorDecl>(MD)) {
3957 const CXXDestructorDecl *DD = CD ? nullptr : cast<CXXDestructorDecl>(MD);
3957 const CXXDestructorDecl *DD = CD ? nullptr : cast<CXXDestructorDecl>(MD);
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp 62 if (isa<CXXDestructorDecl>(GD.getDecl())) {
116 const CXXDestructorDecl *Dtor) override;
212 bool useThunkForDtorVariant(const CXXDestructorDecl *Dtor,
218 const CXXDestructorDecl *Dtor,
222 getCXXDestructorLinkage(GVALinkage Linkage, const CXXDestructorDecl *Dtor,
225 void EmitCXXDestructors(const CXXDestructorDecl *D) override;
229 if (MD->isVirtual() && !isa<CXXDestructorDecl>(MD)) {
259 void EmitDestructorCall(CodeGenFunction &CGF, const CXXDestructorDecl *DD,
299 const CXXDestructorDecl *Dtor,
844 const CXXDestructorDecl *Dtor) {
1047 return isa<CXXDestructorDecl>(GD.getDecl()) &&
1264 if (isa<CXXDestructorDecl>(GD.getDecl()) &&
1293 const CXXDestructorDecl *Dtor,
1306 GVALinkage Linkage, const CXXDestructorDecl *Dtor, CXXDtorType DT) const {
1338 void MicrosoftCXXABI::EmitCXXDestructors(const CXXDestructorDecl *D) {
1348 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1348 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1367 if (isa<CXXDestructorDecl>(MD))
1397 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1397 if (const CXXDestructorDecl *DD = dyn_cast<CXXDestructorDecl>(MD)) {
1415 if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base)
1571 const CXXDestructorDecl *DD,
1904 CodeGenFunction &CGF, const CXXDestructorDecl *Dtor, CXXDtorType DtorType,
3862 auto *dtor = cast<CXXDestructorDecl>(GD.getDecl());
4245 if (CXXDestructorDecl *DtorD = RD->getDestructor())
tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp 91 if (isa<CXXConstructorDecl>(ND) || isa<CXXDestructorDecl>(ND))
tools/clang/lib/Index/IndexDecl.cpp 263 } else if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(D)) {
263 } else if (const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(D)) {
tools/clang/lib/Index/IndexSymbol.cpp 294 else if (isa<CXXDestructorDecl>(MD))
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp 342 (isa<CXXDestructorDecl>(FD) ||
348 << !isa<CXXDestructorDecl>(FD) << !Ty->hasExceptionSpec()
tools/clang/lib/Sema/Sema.cpp 791 (M->isPure() && !isa<CXXDestructorDecl>(M));
1685 if (CXXDestructorDecl *DD = RD->getDestructor()) {
tools/clang/lib/Sema/SemaAccess.cpp 1072 if (isa<CXXConstructorDecl>(D) || isa<CXXDestructorDecl>(D) ||
1078 << isa<CXXDestructorDecl>(D->getAsFunction());
1587 CXXDestructorDecl *Dtor,
tools/clang/lib/Sema/SemaCUDA.cpp 441 bool Sema::isEmptyCudaDestructor(SourceLocation Loc, CXXDestructorDecl *DD) {
tools/clang/lib/Sema/SemaChecking.cpp13087 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl);
tools/clang/lib/Sema/SemaCodeComplete.cpp 956 if (isa<CXXDestructorDecl>(ND))
tools/clang/lib/Sema/SemaCoroutine.cpp 227 else if (MD && isa<CXXDestructorDecl>(MD))
tools/clang/lib/Sema/SemaDecl.cpp 3501 else if (isa<CXXDestructorDecl>(NewMethod))
6213 } else if (isa<CXXConstructorDecl>(MD) || isa<CXXDestructorDecl>(MD)) {
6215 << isa<CXXDestructorDecl>(MD) << A->getRange();
8211 CXXDestructorDecl *NewDD = CXXDestructorDecl::Create(
8211 CXXDestructorDecl *NewDD = CXXDestructorDecl::Create(
8826 if (isa<CXXDestructorDecl>(NewFD) && !getLangOpts().CPlusPlus2a) {
9768 if (isa<CXXDestructorDecl>(NewCXXFD))
10321 !isa<CXXDestructorDecl>(MD) && !MD->getMethodQualifiers().hasConst()) {
10434 } else if (CXXDestructorDecl *Destructor =
10435 dyn_cast<CXXDestructorDecl>(NewFD)) {
13834 else if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(FD))
13834 else if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(FD))
14003 if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(dcl)) {
14003 if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(dcl)) {
16721 auto *Dtor = CXXRecord->getDestructor();
tools/clang/lib/Sema/SemaDeclCXX.cpp 1602 const CXXDestructorDecl *DD,
1739 if (auto *Dtor = dyn_cast<CXXDestructorDecl>(NewFD)) {
3045 unsigned DiagID = isa<CXXDestructorDecl>(MD)
4931 if (CXXDestructorDecl *Dtor = LookupDestructor(Constructor->getParent())) {
5404 CXXDestructorDecl *Dtor = LookupDestructor(FieldClassDecl);
5440 CXXDestructorDecl *Dtor = LookupDestructor(BaseClassDecl);
5472 CXXDestructorDecl *Dtor = LookupDestructor(BaseClassDecl);
5971 (Ctor || isa<CXXDestructorDecl>(MD)) && MD->isTrivial())
6114 if (isa<CXXDestructorDecl>(FD))
6162 S.DefineImplicitDestructor(DefaultLoc, cast<CXXDestructorDecl>(MD));
6220 } else if (const auto *DD = D->getDestructor()) {
6279 else if (!isa<CXXDestructorDecl>(MD))
6352 CXXDestructorDecl *dtor = Record->getDestructor();
6369 if (const CXXDestructorDecl *dtor = Record->getDestructor()) {
6451 if (CXXDestructorDecl *Dtor = Record->getDestructor())
6464 if (!isa<CXXDestructorDecl>(M))
6986 (getLangOpts().CPlusPlus14 ? !isa<CXXDestructorDecl>(MD)
8727 bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) {
11711 CXXDestructorDecl *Sema::DeclareImplicitDestructor(CXXRecordDecl *ClassDecl) {
11733 CXXDestructorDecl *Destructor =
11734 CXXDestructorDecl::Create(Context, ClassDecl, ClassLoc, NameInfo,
11778 CXXDestructorDecl *Destructor) {
11863 void Sema::AdjustDestructorExceptionSpec(CXXDestructorDecl *Destructor) {
12439 << /*destructor*/isa<CXXDestructorDecl>(UserDeclaredOperation);
13590 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl);
15626 CXXDestructorDecl *DD = Class->getDestructor();
15828 if (CXXDestructorDecl *Destructor = LookupDestructor(RD)) {
tools/clang/lib/Sema/SemaExceptionSpec.cpp 253 if (!isa<CXXDestructorDecl>(Decl) &&
264 return isa<CXXDestructorDecl>(Decl);
948 if (isa<CXXDestructorDecl>(New) && New->getParent()->isDependentType())
1161 const CXXDestructorDecl *DD = RD->getDestructor();
tools/clang/lib/Sema/SemaExpr.cpp12407 if (isa<CXXDestructorDecl>(MD))
15424 if (isa<CXXDestructorDecl>(Func))
15506 } else if (CXXDestructorDecl *Destructor =
15507 dyn_cast<CXXDestructorDecl>(Func)) {
15508 Destructor = cast<CXXDestructorDecl>(Destructor->getFirstDecl());
tools/clang/lib/Sema/SemaExprCXX.cpp 899 if (CXXDestructorDecl *Destructor = LookupDestructor(RD)) {
3370 if (CXXDestructorDecl *Dtor = LookupDestructor(PointeeRD)) {
3406 if (CXXDestructorDecl *Dtor = LookupDestructor(PointeeRD)) {
3572 void Sema::CheckVirtualDtorCall(CXXDestructorDecl *dtor, SourceLocation Loc,
4729 CXXDestructorDecl *Destructor = Self.LookupDestructor(RD);
4887 if (CXXDestructorDecl *Destructor = Self.LookupDestructor(RD))
6491 CXXDestructorDecl *Destructor = IsDecltype ? nullptr : LookupDestructor(RD);
6659 CXXDestructorDecl *Destructor = LookupDestructor(RD);
6886 if (CXXDestructorDecl *D = SemaRef.LookupDestructor(RD))
tools/clang/lib/Sema/SemaExprMember.cpp 999 (isa<CXXDestructorDecl>(FD) || isa<CXXConstructorDecl>(FD)) &&
1003 << isa<CXXDestructorDecl>(FD);
tools/clang/lib/Sema/SemaInit.cpp 1805 CXXDestructorDecl *Destructor = SemaRef.LookupDestructor(CXXRD);
8118 CXXDestructorDecl *Destructor
tools/clang/lib/Sema/SemaLookup.cpp 3103 CXXDestructorDecl *DD = RD->getDestructor();
3365 CXXDestructorDecl *Sema::LookupDestructor(CXXRecordDecl *Class) {
3366 return cast<CXXDestructorDecl>(LookupSpecialMember(Class, CXXDestructor,
tools/clang/lib/Sema/SemaOpenMP.cpp 5128 if (isa<CXXDestructorDecl>(FD)) {
tools/clang/lib/Sema/SemaOverload.cpp 1243 if (isa<CXXDestructorDecl>(New))
5174 if (isa<CXXDestructorDecl>(Method)) {
13551 isa<CXXDestructorDecl>(CurContext)) &&
13559 << MD->getDeclName() << isa<CXXDestructorDecl>(CurContext)
13569 if (CXXDestructorDecl *DD =
13570 dyn_cast<CXXDestructorDecl>(TheCall->getMethodDecl())) {
tools/clang/lib/Sema/SemaStmt.cpp 3662 else if (isa<CXXDestructorDecl>(CurDecl))
3677 isa<CXXDestructorDecl>(CurDecl))
3695 << CurDecl->getDeclName() << isa<CXXDestructorDecl>(CurDecl)
3708 else if (isa<CXXDestructorDecl>(CurDecl))
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp 2162 } else if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(D)) {
2162 } else if (CXXDestructorDecl *Destructor = dyn_cast<CXXDestructorDecl>(D)) {
2163 Method = CXXDestructorDecl::Create(
2388 Decl *TemplateDeclInstantiator::VisitCXXDestructorDecl(CXXDestructorDecl *D) {
4112 if (isa<CXXDestructorDecl>(New) && SemaRef.getLangOpts().CPlusPlus11)
4113 SemaRef.AdjustDestructorExceptionSpec(cast<CXXDestructorDecl>(New));
tools/clang/lib/Sema/SemaType.cpp 8251 CXXDestructorDecl *Dtor = RD->getDestructor();
tools/clang/lib/Sema/TreeTransform.h10686 if (CXXDestructorDecl *Destructor = SemaRef.LookupDestructor(Record)) {
tools/clang/lib/Serialization/ASTReader.cpp 9704 CXXDestructorDecl *Decl = ReadDeclAs<CXXDestructorDecl>(F, Record, Idx);
9704 CXXDestructorDecl *Decl = ReadDeclAs<CXXDestructorDecl>(F, Record, Idx);
10956 if (isa<CXXDestructorDecl>(D)) return DiagDestructor;
tools/clang/lib/Serialization/ASTReaderDecl.cpp 372 void VisitCXXDestructorDecl(CXXDestructorDecl *D);
1936 void ASTDeclReader::VisitCXXDestructorDecl(CXXDestructorDecl *D) {
1940 CXXDestructorDecl *Canon = D->getCanonicalDecl();
3715 D = CXXDestructorDecl::CreateDeserialized(Context, ID);
4428 auto *First = cast<CXXDestructorDecl>(D->getCanonicalDecl());
4428 auto *First = cast<CXXDestructorDecl>(D->getCanonicalDecl());
tools/clang/lib/Serialization/ASTWriter.cpp 5364 Record.AddStmt(cast<CXXDestructorDecl>(D)->getOperatorDeleteThisArg());
6431 void ASTWriter::ResolvedOperatorDelete(const CXXDestructorDecl *DD,
tools/clang/lib/Serialization/ASTWriterDecl.cpp 93 void VisitCXXDestructorDecl(CXXDestructorDecl *D);
1366 void ASTDeclWriter::VisitCXXDestructorDecl(CXXDestructorDecl *D) {
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp 183 recordFixedType(Target, cast<CXXDestructorDecl>(D), C);
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp 1670 if (const auto *Dtor = dyn_cast<CXXDestructorDecl>(Method)) {
1670 if (const auto *Dtor = dyn_cast<CXXDestructorDecl>(Method)) {
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp 3157 static bool isReferenceCountingPointerDestructor(const CXXDestructorDecl *DD) {
3273 if (const auto *DD = dyn_cast<CXXDestructorDecl>(LC->getDecl())) {
3273 if (const auto *DD = dyn_cast<CXXDestructorDecl>(LC->getDecl())) {
tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp 536 auto *DtorDec = dyn_cast_or_null<CXXDestructorDecl>(CtxDec);
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp 358 : AnyCall(cast<CXXDestructorDecl>(Call.getDecl()));
tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp 189 if (isa<CXXDestructorDecl>(MD)) {
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp 1413 const auto *Dtor = cast<CXXDestructorDecl>(CalleeCtx->getDecl());
1413 const auto *Dtor = cast<CXXDestructorDecl>(CalleeCtx->getDecl());
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp 999 const CXXDestructorDecl *Dtor = RD->getDestructor();
1028 const auto *CurDtor = cast<CXXDestructorDecl>(LCtx->getDecl());
1028 const auto *CurDtor = cast<CXXDestructorDecl>(LCtx->getDecl());
1051 const auto *CurDtor = cast<CXXDestructorDecl>(LCtx->getDecl());
1051 const auto *CurDtor = cast<CXXDestructorDecl>(LCtx->getDecl());
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp 614 const CXXDestructorDecl *DtorDecl = RecordDecl->getDestructor();
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp 843 const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(FD);
843 const CXXDestructorDecl *Dtor = dyn_cast<CXXDestructorDecl>(FD);
tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp 42 if (!isa<CXXConstructorDecl>(Target) && !isa<CXXDestructorDecl>(Target) &&
tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp 48 else if (const auto *DtorDecl = dyn_cast<CXXDestructorDecl>(FoundDecl))
48 else if (const auto *DtorDecl = dyn_cast<CXXDestructorDecl>(FoundDecl))
tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp 187 if (llvm::isa<CXXDestructorDecl>(Decl))
tools/clang/tools/extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp 189 !isa<CXXDestructorDecl>(BaseMD) && BaseMD->isVirtual() &&
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/SlicingCheck.cpp 81 if (isa<CXXConstructorDecl>(Method) || isa<CXXDestructorDecl>(Method))
tools/clang/tools/extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp 288 } else if (isa<CXXDestructorDecl>(SpecialFunctionDecl)) {
tools/clang/tools/extra/clang-tidy/readability/IdentifierNamingCheck.cpp 731 if (const auto *Decl =
732 Result.Nodes.getNodeAs<CXXDestructorDecl>("classRef")) {
tools/clang/tools/extra/clangd/FindTarget.cpp 449 if (llvm::isa<CXXDestructorDecl>(ND))
tools/clang/tools/extra/clangd/unittests/QualityTests.cpp 432 isa<CXXDestructorDecl>(&ND);
tools/clang/tools/libclang/CIndex.cpp 835 if (!isa<CXXDestructorDecl>(ND))
tools/clang/unittests/AST/ASTImporterFixtures.h 174 template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
174 template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
175 return cast_or_null<DeclT>(Import(cast<Decl>(From), Lang));
tools/clang/unittests/AST/ASTImporterTest.cpp 5450 auto *ToD1 = Import(GetDeclToImport("input1.cc"), Lang_CXX11);
5453 auto *ToD2 = Import(GetDeclToImport("input2.cc"), Lang_CXX11);
tools/lldb/source/Symbol/ClangASTContext.cpp 181 if (auto *baseDtorDecl = base_record->getDestructor()) {
4648 else if (llvm::isa<clang::CXXDestructorDecl>(cxx_method_decl))
8158 clang::CXXDestructorDecl *cxx_dtor_decl(nullptr);
8169 cxx_dtor_decl = clang::CXXDestructorDecl::Create(
9906 } else if (llvm::isa<clang::CXXDestructorDecl>(nd)) {
9907 mc->mangleCXXDtor(llvm::dyn_cast<clang::CXXDestructorDecl>(nd),
tools/lldb/tools/lldb-instr/Instrument.cpp 294 if (isa<CXXDestructorDecl>(Decl))
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
1554 { typedef _Tp type; };
1558 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1580 { typedef _Tp const type; };
1629 { typedef _Tp type; };
1983 { typedef _Up type; };
1999 { typedef typename remove_reference<_Tp>::type* type; };
2003 : public __add_pointer_helper<_Tp>
utils/unittest/googletest/include/gtest/gtest-printers.h 407 T* p, ::std::ostream* os) {
416 if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {