If filtering a lookup result leaves it ambiguous, keep the ambiguity     
kind.  Fixes PR7252.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112383 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/SemaTemplate/temp.cpp b/test/SemaTemplate/temp.cpp
index 961b9c8..e037f0f 100644
--- a/test/SemaTemplate/temp.cpp
+++ b/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 ';'}}
+  };
+}