diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-01-19 16:01:07 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-01-19 16:01:07 +0000 |
| commit | 9abe2377e718fed1201e48b27bfa98b223673094 (patch) | |
| tree | 375bd49bb957031117641a9f8f9ba203c8b76613 /clang/test/SemaTemplate/dependent-base-classes.cpp | |
| parent | c9818a77cbb4de4c5a64c8a5835a0101b25aa485 (diff) | |
| download | bcm5719-llvm-9abe2377e718fed1201e48b27bfa98b223673094.tar.gz bcm5719-llvm-9abe2377e718fed1201e48b27bfa98b223673094.zip | |
Teach Sema::ActOnDependentTemplateName that a dependent template name
in a member access expression referring into the current instantiation
need not be resolved at template definition *if* the current
instantiation has any dependent base classes. Fixes PR6081.
llvm-svn: 93877
Diffstat (limited to 'clang/test/SemaTemplate/dependent-base-classes.cpp')
| -rw-r--r-- | clang/test/SemaTemplate/dependent-base-classes.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/dependent-base-classes.cpp b/clang/test/SemaTemplate/dependent-base-classes.cpp index 79b28c2239f..80d20b09b82 100644 --- a/clang/test/SemaTemplate/dependent-base-classes.cpp +++ b/clang/test/SemaTemplate/dependent-base-classes.cpp @@ -82,3 +82,31 @@ namespace Ambig { Derived<int> di; // expected-note{{instantiation of}} } + +namespace PR6081 { + template<typename T> + struct A { }; + + template<typename T> + class B : public A<T> + { + public: + template< class X > + void f0(const X & k) + { + this->template f1<int>()(k); + } + }; + + template<typename T> + class C + { + public: + template< class X > + void f0(const X & k) + { + this->template f1<int>()(k); // expected-error{{'f1' following the 'template' keyword does not refer to a template}} \ + // FIXME: expected-error{{unqualified-id}} + } + }; +} |

