Add code for emitting C++ destructors. Not used yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72591 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp
index 30d76cb..5b806fa 100644
--- a/lib/AST/DeclCXX.cpp
+++ b/lib/AST/DeclCXX.cpp
@@ -187,6 +187,23 @@
   Conversions.addOverload(ConvDecl);
 }
 
+const CXXDestructorDecl *
+CXXRecordDecl::getDestructor(ASTContext &Context) {
+  QualType ClassType = Context.getTypeDeclType(this);
+
+  DeclarationName Name 
+    = Context.DeclarationNames.getCXXDestructorName(ClassType);
+
+  DeclContext::lookup_iterator I, E;
+  llvm::tie(I, E) = lookup(Context, Name); 
+  assert(I != E && "Did not find a destructor!");
+  
+  const CXXDestructorDecl *Dtor = cast<CXXDestructorDecl>(*I);
+  assert(++I == E && "Found more than one destructor!");
+  
+  return Dtor;
+}
+
 CXXMethodDecl *
 CXXMethodDecl::Create(ASTContext &C, CXXRecordDecl *RD,
                       SourceLocation L, DeclarationName N,