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.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72282 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaTemplateInstantiateExpr.cpp b/lib/Sema/SemaTemplateInstantiateExpr.cpp
index 6ef748c..da4fb75 100644
--- a/lib/Sema/SemaTemplateInstantiateExpr.cpp
+++ b/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;