Don't reject __restrict applied to a dependent type; it might instantiate to a pointer or reference type.

llvm-svn: 178198
diff --git a/clang/test/SemaTemplate/fun-template-def.cpp b/clang/test/SemaTemplate/fun-template-def.cpp
index 0427781..f57a045 100644
--- a/clang/test/SemaTemplate/fun-template-def.cpp
+++ b/clang/test/SemaTemplate/fun-template-def.cpp
@@ -46,3 +46,11 @@
 
   return u1;
 }
+
+template<typename T>
+void f2(__restrict T x) {} // expected-note {{substitution failure [with T = int]: pointer to function type 'int' may not be 'restrict' qualified}}
+
+void f3() {
+  f2<int*>(0);
+  f2<int>(0); // expected-error {{no matching function for call to 'f2'}}
+}