// RUN: %clang_cc1 -fsyntax-only -verify %s
// PR5741
namespacetest0{structA{structB{};structC;};structA::C : B{};}// Test that successive base specifiers don't screw with each other.
namespacetest1{structOpaque1{};structOpaque2{};structA{structB{B(Opaque1);};};structB{B(Opaque2);};structC:A,B{// Apparently the base-or-member lookup is actually ambiguous
// without this qualification.
C():A(),test1::B(Opaque2()){}};}// Test that we don't find the injected class name when parsing base
// specifiers.
namespacetest2{template<class T>structbar{};template<class T>structfoo:bar<foo>{};// expected-error {{use of class template 'foo' requires template arguments}} expected-note {{template is declared here}}
}