diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-10-05 20:05:21 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-10-05 20:05:21 +0000 |
commit | 42fd9efa38e6f6e04824ede2cbb8bb1f73d0e9ad (patch) | |
tree | e2729d331ebba930eeed3c798bac69830c95f687 /clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp | |
parent | 478a8eb2b6da49b2f018c1ed925c9e4ee4213ae8 (diff) | |
download | bcm5719-llvm-42fd9efa38e6f6e04824ede2cbb8bb1f73d0e9ad.tar.gz bcm5719-llvm-42fd9efa38e6f6e04824ede2cbb8bb1f73d0e9ad.zip |
Revert r107690 (for PR7417) and add a testcase that it breaks. The approach of
that change turns out to not be reasonable: mutating the AST of a parsed
template during instantiation is not a sound thing to do, does not work across
chained PCH / modules builds, and is in any case a special-case workaround to a
more general problem that should be solved centrally.
llvm-svn: 249342
Diffstat (limited to 'clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp')
-rw-r--r-- | clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp b/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp index 9fa59e626ee..e1a052cef64 100644 --- a/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp +++ b/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp @@ -4,8 +4,8 @@ template <class T> class A { public: - void f(T a) { }// expected-note {{must qualify identifier to find this declaration in dependent base class}} - void g();// expected-note {{must qualify identifier to find this declaration in dependent base class}} + void f(T a) { }// expected-note 2{{must qualify identifier to find this declaration in dependent base class}} + void g();// expected-note 2{{must qualify identifier to find this declaration in dependent base class}} }; template <class T> @@ -13,13 +13,13 @@ class B : public A<T> { public: void z(T a) { - f(a); // expected-warning {{use of identifier 'f' found via unqualified lookup into dependent bases of class templates is a Microsoft extension}} - g(); // expected-warning {{use of identifier 'g' found via unqualified lookup into dependent bases of class templates is a Microsoft extension}} + f(a); // expected-warning 2{{use of identifier 'f' found via unqualified lookup into dependent bases of class templates is a Microsoft extension}} + g(); // expected-warning 2{{use of identifier 'g' found via unqualified lookup into dependent bases of class templates is a Microsoft extension}} } }; template class B<int>; // expected-note {{requested here}} -template class B<char>; +template class B<char>; // expected-note {{requested here}} void test() { |