diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-08-10 21:59:45 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-08-10 21:59:45 +0000 |
| commit | de0a43f7720259290fd8f7032420b990d771bb52 (patch) | |
| tree | 1435781d190cbd1b1c721925c5c569bb67a76249 /clang/test/CXX/basic | |
| parent | 1d9d5e93d12d83c5bffb6039bf37580da32357f5 (diff) | |
| download | bcm5719-llvm-de0a43f7720259290fd8f7032420b990d771bb52.tar.gz bcm5719-llvm-de0a43f7720259290fd8f7032420b990d771bb52.zip | |
When performing the lookup in the current scope for a member access to
a member template, e.g.,
x.f<int>
if we have found a template in the type of x, but the lookup in the
current scope is ambiguous, just ignore the lookup in the current
scope. Fixes <rdar://problem/9915664>.
llvm-svn: 137255
Diffstat (limited to 'clang/test/CXX/basic')
| -rw-r--r-- | clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p1.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p1.cpp b/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p1.cpp index 3fde0daa96c..c35af1def20 100644 --- a/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p1.cpp +++ b/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p1.cpp @@ -44,3 +44,21 @@ void resolves_to_different() { v.set<double>(3.2); } } + +namespace rdar9915664 { + struct A { + template<typename T> void a(); + }; + + struct B : A { }; + + struct C : A { }; + + struct D : B, C { + A &getA() { return static_cast<B&>(*this); } + + void test_a() { + getA().a<int>(); + } + }; +} |

