diff options
author | Francois Pichet <pichet2000@gmail.com> | 2011-11-15 23:33:34 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2011-11-15 23:33:34 +0000 |
commit | e614d6c6b12f20f0072c20eb312db2e80d1cb051 (patch) | |
tree | de5cc2b67890c9484f412eabf64b4f4267c04f51 /test/SemaTemplate/ms-lookup-template-base-classes.cpp | |
parent | d2536a604f59a3cca491f175bf1e49eeca49163b (diff) | |
download | clang-e614d6c6b12f20f0072c20eb312db2e80d1cb051.tar.gz |
In Microsoft mode, make "Unqualified lookup into dependent bases of class templates" works inside static functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144729 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaTemplate/ms-lookup-template-base-classes.cpp')
-rw-r--r-- | test/SemaTemplate/ms-lookup-template-base-classes.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/SemaTemplate/ms-lookup-template-base-classes.cpp b/test/SemaTemplate/ms-lookup-template-base-classes.cpp index 0e3757297f..149ec4f8e9 100644 --- a/test/SemaTemplate/ms-lookup-template-base-classes.cpp +++ b/test/SemaTemplate/ms-lookup-template-base-classes.cpp @@ -48,3 +48,26 @@ template class B<int>; } + + +namespace lookup_dependent_base_class_static_function { + +template <class T> +class A { +public: + static void static_func();// expected-note {{must qualify identifier to find this declaration in dependent base class}} + void func();// expected-note {{must qualify identifier to find this declaration in dependent base class}} +}; + + +template <class T> +class B : public A<T> { +public: + static void z2(){ + static_func(); // expected-warning {{use of identifier 'static_func' found via unqualified lookup into dependent bases of class templates is a Microsoft extension}} + func(); // expected-warning {{use of identifier 'func' found via unqualified lookup into dependent bases of class templates is a Microsoft extension}} expected-error {{call to non-static member function without an object argument}} + } +}; +template class B<int>; // expected-note {{requested here}} + +} |