]> granicus.if.org Git - clang/commitdiff
Add another test for weird substitutions into function types during template argument...
authorDouglas Gregor <dgregor@apple.com>
Thu, 25 Mar 2010 15:42:11 +0000 (15:42 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 25 Mar 2010 15:42:11 +0000 (15:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99510 91177308-0d34-0410-b5e6-96231b3b80d8

test/SemaTemplate/instantiate-function-params.cpp

index dfba14a97c8cb79b890e401cdedb146a7ca10d64..14c4d9f933a7d134dc431340f9a857e22f60d3c4 100644 (file)
@@ -42,3 +42,16 @@ void instF0(X0<T(A1)> x0a, X0<T(A2)> x0b) {
 }
 
 template void instF0<int, int, float>(X0<int(int)>, X0<int(float)>);
+
+template<typename R, typename A1, R (*ptr)(A1)> struct FuncPtr { };
+template<typename A1, int (*ptr)(A1)> struct FuncPtr<int, A1, ptr> { };
+
+template<typename R, typename A1> R unary_func(A1);
+
+template<typename R, typename A1, typename A2>
+void use_func_ptr() {
+  FuncPtr<R, A1, &unary_func<R, A1> > fp1;
+  FuncPtr<R, A2, &unary_func<R, A2> > fp2;
+};
+
+template void use_func_ptr<int, float, double>();