Parsing, representation, and preliminary semantic analysis of destructors.

Implicit declaration of destructors (when necessary).

Extended Declarator to store information about parsed constructors
and destructors; this will be extended to deal with declarators that
name overloaded operators (e.g., "operator +") and user-defined
conversion operators (e.g., "operator int").



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58767 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index d14c5ff..68d2eee 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -836,7 +836,13 @@
 
   virtual void ActOnFinishCXXClassDef(DeclTy *TagDecl);
   
-  virtual DeclTy *ActOnConstructorDeclarator(CXXConstructorDecl *ConDecl);
+  
+  bool CheckConstructorDeclarator(Declarator &D, QualType &R,
+                                  FunctionDecl::StorageClass& SC);
+  bool CheckDestructorDeclarator(Declarator &D, QualType &R,
+                                 FunctionDecl::StorageClass& SC);
+  DeclTy *ActOnConstructorDeclarator(CXXConstructorDecl *Constructor);
+  DeclTy *ActOnDestructorDeclarator(CXXDestructorDecl *Destructor);
 
   //===--------------------------------------------------------------------===//
   // C++ Derived Classes