[clang][Interp][NFC] Add Record::getDestructor()
authorTimm Bäder <tbaeder@redhat.com>
Thu, 5 Jan 2023 12:40:26 +0000 (13:40 +0100)
committerTimm Bäder <tbaeder@redhat.com>
Mon, 23 Jan 2023 09:19:34 +0000 (10:19 +0100)
Unused for now but will be used in later commits.

clang/lib/AST/Interp/Record.h

index f638ae9..1742cb1 100644 (file)
@@ -13,8 +13,9 @@
 #ifndef LLVM_CLANG_AST_INTERP_RECORD_H
 #define LLVM_CLANG_AST_INTERP_RECORD_H
 
-#include "clang/AST/Decl.h"
 #include "Descriptor.h"
+#include "clang/AST/Decl.h"
+#include "clang/AST/DeclCXX.h"
 
 namespace clang {
 namespace interp {
@@ -62,6 +63,12 @@ public:
   const Base *getBase(const RecordDecl *FD) const;
   /// Returns a virtual base descriptor.
   const Base *getVirtualBase(const RecordDecl *RD) const;
+  // Returns the destructor of the record, if any.
+  const CXXDestructorDecl *getDestructor() const {
+    if (const auto *CXXDecl = dyn_cast<CXXRecordDecl>(Decl))
+      return CXXDecl->getDestructor();
+    return nullptr;
+  }
 
   using const_field_iter = FieldList::const_iterator;
   llvm::iterator_range<const_field_iter> fields() const {