Make sure we perform the variadic method check correctly for calls to a member operator().  PR14057.

llvm-svn: 165678
diff --git a/clang/test/SemaCXX/attr-format.cpp b/clang/test/SemaCXX/attr-format.cpp
index da134a1..3d5c339 100644
--- a/clang/test/SemaCXX/attr-format.cpp
+++ b/clang/test/SemaCXX/attr-format.cpp
@@ -14,6 +14,8 @@
       expected-error{{out of bounds}}
   const char* h3(const char*) __attribute__((format_arg(1))); // \
       expected-error{{invalid for the implicit this argument}}
+
+  void operator() (const char*, ...) __attribute__((format(printf, 2, 3)));
 };
 
 // PR5521
@@ -33,3 +35,9 @@
     s.f(str, "%s", str);
   }
 }
+
+// Make sure we interpret member operator calls as having an implicit
+// this argument.
+void test_operator_call(S s, const char* str) {
+  s("%s", str);
+}