Add a few tests to ensure that member functions of class templates can
call other member functions of class templates, including after
template instantiation. No functionality change.

llvm-svn: 72282
diff --git a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
index 6ef748c..da4fb75 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
@@ -74,7 +74,7 @@
     OwningExprResult VisitImplicitCastExpr(ImplicitCastExpr *E);
     OwningExprResult VisitExplicitCastExpr(ExplicitCastExpr *E);
     OwningExprResult VisitCStyleCastExpr(CStyleCastExpr *E);
-    // FIXME: CXXMemberCallExpr
+    OwningExprResult VisitCXXMemberCallExpr(CXXMemberCallExpr *E);
     OwningExprResult VisitCXXNamedCastExpr(CXXNamedCastExpr *E);
     OwningExprResult VisitCXXStaticCastExpr(CXXStaticCastExpr *E);
     OwningExprResult VisitCXXDynamicCastExpr(CXXDynamicCastExpr *E);
@@ -852,6 +852,11 @@
 }
 
 Sema::OwningExprResult 
+TemplateExprInstantiator::VisitCXXMemberCallExpr(CXXMemberCallExpr *E) {
+  return VisitCallExpr(E);
+}
+
+Sema::OwningExprResult 
 TemplateExprInstantiator::VisitCXXNamedCastExpr(CXXNamedCastExpr *E) {
   // Figure out which cast operator we're dealing with.
   tok::TokenKind Kind;