// RUN: %clang_cc1 -verify %s template <class T> struct Base { // expected-note 4 {{member found by ambiguous name lookup}} static void f(); }; struct X0 { }; template <class T> struct Derived: Base<int>, Base<char> { typename Derived::Base b; // expected-error{{member 'Base' found in multiple base classes of different types}} typename Derived::Base<double> d; // OK void g(X0 *t) { t->Derived::Base<T>::f(); t->Base<T>::f(); t->Base::f(); // expected-error{{member 'Base' found in multiple base classes of different types}} \ // expected-error{{no member named 'f' in 'X0'}} \ // expected-error{{'Base' is not a class, namespace, or scoped enumeration}} } }; namespace PR6717 { template <typename T> class WebVector { } // expected-error {{expected ';' after class}} WebVector(const WebVector<T>& other) { } // expected-error{{undeclared identifier 'T'}} \ expected-error{{requires a type specifier}} template <typename C> WebVector<T>& operator=(const C& other) { } // expected-error{{undeclared identifier 'T'}} }