diff options
Diffstat (limited to 'clang/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp')
-rw-r--r-- | clang/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/clang/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp b/clang/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp index c81e4ef1b1b..7e09bc8aef2 100644 --- a/clang/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp +++ b/clang/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp @@ -91,3 +91,28 @@ namespace test2 { a.test3(); // expected-note {{in instantiation}} } } + +namespace test3 { + struct A { + void foo(void (A::*)(int)); // expected-note {{passing argument to parameter here}} + template<typename T> void g(T); + + void test() { + foo(&g<int>); // expected-error {{cannot initialize a parameter}} + } + }; +} + +// This should succeed. +namespace test4 { + struct A { + static void f(void (A::*)()); + static void f(void (*)(int)); + void g(); + static void g(int); + + void test() { + f(&g); + } + }; +} |