reference, declarationdefinition
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.cpp
13087           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.cpp
12407     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.h
10686         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)) {