summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/temp.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-08-28 20:17:00 +0000
committerJohn McCall <rjmccall@apple.com>2010-08-28 20:17:00 +0000
commitfb3f9ba969e3ec5b31d0286f53f978363c5d9623 (patch)
tree7c600bac9f1735044e2d033184eeefb79fa4c7b5 /clang/test/SemaTemplate/temp.cpp
parentd13b1a3581baf589d5491923e0ec88c6ae0aa7dc (diff)
downloadbcm5719-llvm-fb3f9ba969e3ec5b31d0286f53f978363c5d9623.tar.gz
bcm5719-llvm-fb3f9ba969e3ec5b31d0286f53f978363c5d9623.zip
If filtering a lookup result leaves it ambiguous, keep the ambiguity
kind. Fixes PR7252. llvm-svn: 112383
Diffstat (limited to 'clang/test/SemaTemplate/temp.cpp')
-rw-r--r--clang/test/SemaTemplate/temp.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/clang/test/SemaTemplate/temp.cpp b/clang/test/SemaTemplate/temp.cpp
index 961b9c873ab..e037f0f0713 100644
--- a/clang/test/SemaTemplate/temp.cpp
+++ b/clang/test/SemaTemplate/temp.cpp
@@ -1,5 +1,19 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s
-// p3
-template<typename T> int foo(T), bar(T, T); // expected-error{{single entity}}
+namespace test0 {
+ // p3
+ template<typename T> int foo(T), bar(T, T); // expected-error{{single entity}}
+}
+
+// PR7252
+namespace test1 {
+ namespace A { template<typename T> struct Base { typedef T t; }; } // expected-note {{member found}}
+ namespace B { template<typename T> struct Base { typedef T t; }; } // expected-note {{member found}}
+
+ template<typename T> struct Derived : A::Base<char>, B::Base<int> {
+ // FIXME: the syntax error here is unfortunate
+ typename Derived::Base<float>::t x; // expected-error {{found in multiple base classes of different types}} \
+ // expected-error {{expected member name or ';'}}
+ };
+}
OpenPOWER on IntegriCloud