Implement the basic approach for instantiating types, with a lot of FIXME'd
stubs for those types we don't yet know how to instantiate (everything
that isn't a template parameter!).

We now instantiate default arguments for template type parameters when
needed. This will be our testbed while I fill out the remaining
type-instantiation logic.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65649 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 22bfee4..7875a81 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1579,6 +1579,13 @@
   bool CheckTemplateDeclScope(Scope *S, 
                               MultiTemplateParamsArg &TemplateParameterLists);
 
+  //===--------------------------------------------------------------------===//
+  // C++ Template Instantiation
+  //
+  QualType InstantiateType(QualType T, const TemplateArgument *TemplateArgs,
+                           unsigned NumTemplateArgs,
+                           SourceLocation Loc, DeclarationName Entity);
+
   // Objective-C declarations.
   virtual DeclTy *ActOnStartClassInterface(SourceLocation AtInterfaceLoc,
                                            IdentifierInfo *ClassName,