Refactor instantiation of declarations within a template into a much
cleaner visitor framework.

Added a visitor for declarations, which is quite similar to the
visitor for statatements.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67104 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index ed6b2d4..fae0fa6 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1864,6 +1864,10 @@
                                    const TemplateArgument *TemplateArgs,
                                    unsigned NumTemplateArgs);
 
+  Decl *InstantiateDecl(Decl *D, DeclContext *Owner,
+                        const TemplateArgument *TemplateArgs,
+                        unsigned NumTemplateArgs);
+
   bool 
   InstantiateBaseSpecifiers(ClassTemplateSpecializationDecl *ClassTemplateSpec,
                             ClassTemplateDecl *ClassTemplate);